适用的设计模式

Mar*_*ada 6 java jsf design-patterns

我已经有了这个工作层次结构,程序按预期运行.基本上我已经在Base类中抽象了所有内容,并且所有其他子类都添加了自己的方法.

abstract Class Base{
}

class A extends Base{
    //new methods
}

class B extends Base{
    //new methods
}
Run Code Online (Sandbox Code Playgroud)

一切看起来都很好,直到以后(错误...新要求)我意识到我需要有一个新类(让我们调用这个类C),它扩展了A类和B类.现在,在java中它不可能扩展两个具体的类.

class C extends A, B{
    //new methods
}
Run Code Online (Sandbox Code Playgroud)

我需要A类和B类中的方法和变量,但我不知道如何做到这一点?有关如何进行此更改的任何提示?我在设计模式上不是那么好,所以我想在这里问一下.

谢谢

更新 这实际上是一个JSF Managed Bean,其中我在Base Managed Bean中抽象了所有内容,并且所有其他子类在基础托管bean之上覆盖/添加它们自己的实现.只添加了一个新的要求,其中我需要将子类(A和B)的功能都添加到新的子类(C)中

Cra*_*lus 4

重构代码并使用A接口BBase不是类,并使用接口继承而不是实现继承。
然后你可以同时实现Aand B(这就是 中支持多重继承的方式Java