一尘不染

Java中的mixin示例?

java

我刚刚阅读了有效Java的93-4页,但是遇到了一个混入一词。但是我发现很难想象一个mixin实际上是什么。任何人都可以通过提供Java中的Mixin示例来帮助我。感谢您的帮助,因为我已经搜索了Stackoverfolw和Internet,但是没有发现真正明确的结论。


阅读 177

收藏
2020-12-03

共1个答案

一尘不染

您指的是有效Java的第18项-首选抽象类的接口,尤其是以下部分:

接口是定义mixin的理想选择。 松散地说, mixin
是一种类,除了其“主要类型”以外,还可以实现它来声明它提供了一些可选的行为。例如Comparable,mixin接口允许类声明其实例相对于其他相互可比较的对象而排序。这样的接口称为mixin,因为它允许将可选功能“混合”到类型的主要功能中。不能使用抽象类来定义mixin,原因是无法将它们改版为现有类:一个类不能有多个父类,并且在类层次结构中没有合理的位置可插入mixin。

本质上,在抽象类和接口中指定功能之间的主要区别之一是,接口版本可以在许多不同的类层次结构中使用,而抽象类只能在一个类层次结构树中使用,因为Java仅允许单继承。

2020-12-03