说我有以下情况:
abstract class A {
abstract method1();
abstract method2();
}
class B extends A {
method1() {
// implementation 1
}
method2() {
// implementation 3
}
}
class C extends A {
method1() {
// implementation 1
}
method2() {
// implementation 4
}
}
class D extends A {
method1() {
// implementation 2
}
method2() {
// implementation 4
}
}
Run Code Online (Sandbox Code Playgroud)
底线:同一类的几个子类,使用不同方法的不同方法实现.
问题是我在不同的子类中有相同的实现.我的问题是如何处理这些常见的实现?
这样做的逻辑方法是创建另一个抽象级别,但只有当我有一个具有常见实现的方法时才能工作(因为Java没有多重继承).我还可以将最常用的实现放在超类中,并且只在其他类中以不同方式实现它.但是,我不这样做,因为随着时间的推移,最常见的实现可能会随着其他类的添加而改变,此外,我希望将方法保持在超类中.
是否有一些模式能够以"优雅的方式"解决我的问题?
你正在遇到经典的OOP问题,继承heirarchies变得笨拙:-)
我建议的解决方案
| 归档时间: |
|
| 查看次数: |
1894 次 |
| 最近记录: |