我是一个项目的一部分,该项目将在不同时间用不同语言编写的代码整合到一个应用程序中。
我的作品是从C ++转向Java。在阅读了对这个问题的评论之后:https://stackoverflow.com/questions/587458/implement-mixin-in-java我得出结论,如果没有代码生成方案,Java中的mixin就不可能实现,而那些在我正在研究的团队中并不会得到很好的接受。
使用vanilla Java在C ++中实现以前的Mixin的正确方法是什么?特别是,曾经有一种MVC型设计,其中一些控制器具有使用控制器状态的混合和匹配逻辑。控制器将继承Mixins以各种排列方式获得此功能,使得线性继承路径没有多大意义。
我现在能想到的最好的事情是一堆实用类型的类,它们包含过去在Mixins中的逻辑,并且让控制器在将它们作为引用传递时调用它们的功能,以便实用程序类可以访问他们的州。恕我直言,这真的很臭,我希望有更好的方法。
那么,用Java设计它的正确方法是什么?
答案 0 :(得分:1)
如果你真的想要mixins,你可以使用像Scala这样支持它们的语言(并在带有Java代码的JVM上运行)
否则我会合成,这也不是很好,但很简单。