【问题标题】:Correct way to implement what used to be a Mixin in Java?在 Java 中实现曾经是 Mixin 的正确方法?
【发布时间】:2012-10-12 17:03:20
【问题描述】:

我参与了一个项目,该项目将在不同时间用不同语言编写的代码整合到一个应用程序中。

我的作品正在从 C++ 转向 Java。在阅读了这个问题的 cmets 后:https://stackoverflow.com/questions/587458/implement-mixin-in-java 我得出的结论是,如果没有代码生成方案,Java 中的 mixins 是不可能的,而且这些方案在我正在工作的团队中不会受到好评。

使用 vanilla Java 在 C++ 中实现曾经是 Mixin 的正确方法是什么?特别是,曾经有一种 MVC 类型的设计,其中一些控制器具有使用控制器状态的混合匹配逻辑。控制器会继承 Mixins 以在各种排列中获得此功能,因此线性继承路径没有多大意义。

我现在能想到的最好的事情是一堆实用程序类型的类,其中包含以前在 Mixins 中的逻辑,并让控制器在将自己作为引用传递时调用它们的功能,以便实用程序类可以访问他们的状态。恕我直言,这真的很臭,我希望有更好的方法。

那么,用 Java 设计这个的正确方法是什么?

【问题讨论】:

  • 搜索AspectJ mixin。我自己没有使用 AspectJ 进行 mixin,但它似乎是一种流行的方法。

标签: java c++ mixins


【解决方案1】:

如果你真的想要 mixins,你可以使用像 Scala 这样支持它们的语言(并在带有 Java 代码的 JVM 上运行)

否则我会作曲,这也不漂亮,但很简单。

【讨论】:

    猜你喜欢
    • 2012-11-07
    • 1970-01-01
    • 1970-01-01
    • 2021-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-09
    相关资源
    最近更新 更多