有没有办法在java中模拟mixins或traits?基本上,我需要一种方法来进行多重继承,因此我可以将常用的业务逻辑添加到多个类中
不是你想要的方式.Effective Java建议您"支持组合而不是继承".这意味着您将公共逻辑移动到其他类和委托.这就是你如何解决java中缺少多重继承的问题.
我会将所有业务逻辑封装到一个新类中,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.