有没有一种方法可以在Java中模拟mixin或特性?基本上,我需要一种进行多重继承的方法,以便可以向几个类添加通用的业务逻辑

最佳答案

我会将所有业务逻辑封装到一个新的类BusinessLogic中,并让需要BusinessLogic的每个类都对该类进行调用。如果您需要对BusinessLogic进行调用的类的根植层次结构,则还必须创建一个接口(interface)(BusinessLogicInterface吗?)

用伪代码:

interface BusinessLogicInterace
{
    void method1();
    void method2();
}

class BusinessLogic implements BusinessLogicInterface
{
    void method1() { ... }
    void method2() { ... }
}

class User
    extends OtherClass
    implements BusinessLogicInterface
{
    BusinessLogic logic = new BusinessLogic();

    @Override
    void method1() { logic.method1(); }

    @Override
    void method2() { logic.method2(); }
}

这不是解决缺少多重继承的最漂亮的实现,当接口(interface)具有许多方法时,它将变得非常麻烦。最有可能的是,您将希望尝试重新设计代码以避免需要mixins。

10-06 08:44