多继承的缺点
一个子类可以有多个父类,这样的设计常被人诟病。因为继承应该是个”is-a”关系,那么一个物品不可能是多种不同的东西,因此就不应该存在多重继承。
而且通过上面章节的学习,会发现多继承会有很多问题
事实上很多大型高级开发语言只支持单继承
Mixin模式
为了避免上面的缺点,提出Mixin模式。
min in 混入的意思
主线是单一继承,即:子类 继承父类的属性、方法 ,但需要“混入”其他功能,通过多重继承实现,而 后面的父类 是 Mixin类,表示只提供功能(方法)
MixIn类的目的就是给子类增加功能
Mixin类注意事项:
- 必须表示某一种功能,而不是某个物品(如同Java语言的接口Runnable,Callable等)
- 必须责任单一,如果有多个功能,那就写多个Mixin类
- 不依赖于子类的实现
- 子类即便没有继承这个Mixin类,也照样可以工作,就是缺少了某个功能
- 一般Mixin类的后缀是Mixin
重新实现智能手机
将类名IntelligentDevice改为InstallableMixin,表示“混入”了“可安装的”功能,通过后缀可知是Mixin类。InstallableMixin类只有方法
https://www.cnblogs.com/aademeng/articles/7262520.html
