我参与了一个项目,该项目将在不同时间用不同语言编写的代码整合到一个应用程序中。
我的作品是从 C++ 到 Java。在阅读了对这个问题的评论后:https : //stackoverflow.com/questions/587458/implement-mixin-in-java 我得出的结论是,如果没有代码生成方案,Java 中的 mixins 是不可能的,而且这些方案不会在内部受到好评我正在工作的团队。
使用 vanilla Java 在 C++ 中实现曾经是 Mixin 的正确方法是什么?特别是,曾经有一种 MVC 类型的设计,其中一些控制器具有使用控制器状态的混合匹配逻辑。控制器将继承 Mixins 以在各种排列中获得此功能,因此线性继承路径没有多大意义。
我现在能想到的最好的事情是一堆实用程序类型的类,它们包含以前在 Mixin 中的逻辑,并让控制器调用它们的功能,同时将自己作为引用传递,以便实用程序类可以访问它们的状态. 恕我直言,这真的很臭,我希望有更好的方法。
那么,在 Java 中设计这个的正确方法是什么?