Mixin设计模式---python

在python中允许多重继承,所以在python编程中Mixin模式相当于多继承的特殊情况,是常见的设计但在单一继承的语言(比如java)不能使用Mixin设计。在继承中,可以看成是“i am”, 而Mixin设计就可以看成“i can”

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

下面是简单的代码案例:

# coding: utf8
# 根据一些简单类例子解释Mixin设计模式

__author__ = '波仔'

"""
    类继承树状图
                   Animal
       Mammal                  Bird
    Dog       Bat          Parrot     Ostrich
"""
"""
在python中允许多重继承,所以在python编程中Mixin模式相当于多继承的特殊情况,是常见的设计
但在单一继承的语言(比如java)不能使用Mixin设计。
在继承中,可以看成是“i am”, 而Mixin设计就可以看成“i can”
"""
"""
Mixin的目的就是给一个类增加多个功能,这样,在设计类的时候,我们优先考虑通过多重继承来组合
多个Mixin的功能,而不是设计多层次的复杂的继承关系。
"""


# 动物类
class Animal(object):
    pass


# 两大子类:
class Mammal(Animal):
    pass


class Bird(Animal):
    pass


# Mixin
class RunnableMixin(object):
    def run(self):
        print("running...")


class FlyableMixin(object):
    def fly(self):
        print("flying...")


class CarnivorousMixin(object):
    def carn(self):
        print("eating meet...")


class HerbivoresMixin(object):
    def herb(self):
        print("eating herbivores...")


# 各种动物小类:
class Dog(Mammal, RunnableMixin, CarnivorousMixin):
    pass


class Bat(Mammal, FlyableMixin):
    pass


class Parrot(Bird, FlyableMixin, HerbivoresMixin):
    pass


class Ostrich(Bird, HerbivoresMixin):
    pass
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值