Goo*_*ofy 10 java android android-fragments
我已准备好应用并在Google Play商店中运行,现在我正在实施片段.
所以,我已经有了一个用一些方法扩展B的类A,现在我有C扩展FragmentActivity的类,所以现在我需要使用与A类相同的方法但是这里因为我扩展了FragmentActivity我不能使用B类,所以这里有重复的方法,与A类相同,但我需要重用这些方法.
以下示例显示了我的情况:
例如:
目前的实施
class A extends B{
one();
two();
}
Run Code Online (Sandbox Code Playgroud)
整合片段后,
例如:
class C extends FragmentActivity{
one();// same methods as in class A
two();// same methods as in class A
}
Run Code Online (Sandbox Code Playgroud)
1)在这种情况下重用这些方法的最佳方法是什么?
2)在我的脑海里,我有一种方法,比如创建一个类,并将方法设置为静态并重复使用A和C类中的方法,但是我的方法很好,我可以将方法设置为静态,这是一个很好的方法?
3)我想到的"战略模式"的另一种方法.
Eg:
class A extends ApiClass {
private ClassContainingDupMethod strategy;
}
class N extends AnotherApiClass {
private ClassContainingDupMethod strategy;
public methodCallingDupMethod(){
strategy.dupMethod();
}
}
class ClassContainingDupMethod{
public dupMethod(){;}
}
Run Code Online (Sandbox Code Playgroud)
是"战略模式".一个好方法?因为我需要在两个类中创建公共类的对象.
对此有任何建议将不胜感激.
Ily*_*man 15
它比你描述的更简单.你需要做的就是像这样创建D:
public class D{
one();
two();
}
Run Code Online (Sandbox Code Playgroud)
更改A类以使用D类.
public Class A{
public D dLogic;
}
Run Code Online (Sandbox Code Playgroud)
与C级相同
public Class C extends FragmentActivity{
public D dLogic;
}
Run Code Online (Sandbox Code Playgroud)
这是面向对象编程中一些非常基本的东西,它称之为组合.
归档时间: |
|
查看次数: |
1568 次 |
最近记录: |