码迷,mamicode.com
首页 > 其他好文 > 详细

Mixin模式

时间:2021-04-16 11:40:02      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:工作   mixin   ace   rgb   多重继承   原则   veh   callable   多重   

在使用Mixin设计模式实现多重继承的时候要特别注意下列几点原则:
  1. 首先,Mixin类必须表示某一种功能,而不是某一个物体,这点跟java中的Runnable和Callable是一样的。
  2. 其次,它表示的责任必须单一,如果有多个功能,我们应该去实现多个Mixin类。
  3. 接下来,Mixin类不依赖于子类的实现,且属于抽象类,本身不能实例化,也不能继承Mixin以外的类。
  4. 最后,子类即使没有继承Mixin类,也必须照常工作,只是部分功能缺少无法使用。


Python样例:

class Vehicle:
    pass


class PlaneMixin:

    def fly(self):
        print("Flying")


class Airplane(Vehicle, PlaneMixin):
    pass
Airplane 类实现了多继承,在继承链上,它继承了Vehicle类和PlaneMixin类,这里我们遵循Mixin设计模式的要求,在后面添加上后缀Mixin增强代码的可读性。
上述代码可以这么理解,Airplane只是一个Vehicle类,而不是Plane类,而Mixin后缀,它告诉其他读者,这个类是作为功能添加到子类中的,并不是作为父类,它的作用等同于Java中的interface。
这样一来,我们不需要复杂而庞大的继承链,只要选择组合不同的类的功能,就可以快速构造出所需的子类。

Mixin模式

标签:工作   mixin   ace   rgb   多重继承   原则   veh   callable   多重   

原文地址:https://www.cnblogs.com/zwgao/p/14661719.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!