我在几个名为 Mixin 的代码库类中看到过以下评论:
//Mixin style implementation
public class DetachableMixin implements Detachable {}
这种实施方式下的概念是什么?
答案 0 :(得分:4)
这是来自Joshua Bloch“Efective Java”的qoute(我不认为,我可以自己解释一下):
接口非常适合定义mixins。松散地说,mixin是一种类型 一个类除了声明它提供的“主要类型”之外还可以实现 一些可选行为。例如,Comparable是一个mixin接口 允许类声明其实例是相对于其他实例进行的 可比对象。这样的界面被称为mixin,因为它允许 可选功能,以“混入”类型的主要功能。 抽象类不能用于定义mixin,原因与它们不能相同 被改装到现有的类:一个类不能有多个父类,和 在类层次结构中没有合理的位置来插入mixin。
答案 1 :(得分:2)