其他分享
首页 > 其他分享> > Mixin模式

Mixin模式

作者:互联网

在使用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,Vehicle,Airplane,PlaneMixin
来源: https://www.cnblogs.com/zwgao/p/14661719.html