当前位置:  开发笔记 > 编程语言 > 正文

java traits还是mixins模式?

如何解决《javatraits还是mixins模式?》经验,为你挑选了2个好方法。

有没有办法在java中模拟mixins或traits?基本上,我需要一种方法来进行多重继承,因此我可以将常用的业务逻辑添加到多个类中



1> sblundy..:

不是你想要的方式.Effective Java建议您"支持组合而不是继承".这意味着您将公共逻辑移动到其他类和委托.这就是你如何解决java中缺少多重继承的问题.



2> Alex B..:

我会将所有业务逻辑封装到一个新类中,BusinessLogic并让每个需要BusinessLogic调用该类的类.如果你需要为你的类调用一个root的heirarchy BusinessLogic,你也必须创建一个接口(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(); }
}

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

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有