Java中的mixin说明

Mixin即mix in,混入的意思。

mixin类型:不严格的讲,mixin是指这样的类型,类除了实现它的“基本类型”之外,还可以实现这个mixin类型,以表明它提供了些可供选择的行为。例如,comparable是一个mixin接口,它允许类表明它的实例可以与其他的可相互比较的对象进行排序。

和多重继承类似,但通常混入Mixin的类和Mixin类本身不是is-a的关系,混入Mixin类是为了添加某些(可选的)功能。

自由地混入Mixin类就可以灵活地为被混入的类添加不同的功能。

接口是定义mixin(混合类型)的理想选择。

传统的接口并不包含实现,而Mixin包含实现。实际上Mixin的作用和Java中的众多以able结尾的接口很相似。不同的是Mixin提供了(默认)实现,而 Java 中实现了able接口的类需要类自身来实现这些混入的功能(Serializable 接口是个例外)。

java语法规定只能使用单继承,避免多继承带来的麻烦,但是多继承也有自己的优点。而mixin模式可以使java拥有多重继承。

Mixin的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合多个Mixin的功能,而不是设计多层次的复杂的继承关系。

Java实现MixIn三种方式

1.通过接口

2.装饰器模式

扫描二维码关注公众号,回复: 169443 查看本文章

3.使用动态代理

当然,如果按照组合优于继承的设计,我们可以避开不得不使用多重继承的场景。

猜你喜欢

转载自blog.csdn.net/johnwcheung/article/details/79843112