python面向对象-多继承-Mixin模式

多继承的缺点

一个子类可以有多个父类,这样的设计常被人诟病。因为继承应该是个”is-a”关系,那么一个物品不可能是多种不同的东西,因此就不应该存在多重继承。

而且通过上面章节的学习,会发现多继承会有很多问题

事实上很多大型高级开发语言只支持单继承

Mixin模式

为了避免上面的缺点,提出Mixin模式。

min in 混入的意思

主线是单一继承,即:子类 继承父类的属性、方法 ,但需要“混入”其他功能,通过多重继承实现,而 后面的父类 是 Mixin类,表示只提供功能(方法)

MixIn类的目的就是给子类增加功能

Mixin类注意事项:

  1. 必须表示某一种功能,而不是某个物品(如同Java语言的接口Runnable,Callable等)
  2. 必须责任单一,如果有多个功能,那就写多个Mixin类
  3. 不依赖于子类的实现
  4. 子类即便没有继承这个Mixin类,也照样可以工作,就是缺少了某个功能
  5. 一般Mixin类的后缀是Mixin

重新实现智能手机

将类名IntelligentDevice改为InstallableMixin,表示“混入”了“可安装的”功能,通过后缀可知是Mixin类。InstallableMixin类只有方法

https://www.cnblogs.com/aademeng/articles/7262520.html


原文出处:/show_1EF2GeRPwd8l.html