设计模式
Mixin类
委托模式,伪代码如下:
class VoiceMixin:
def words(self, something):
print("voice: %s" % something)
return "voice: %s" % something
class Dog(VoiceMixin):
def __init__(self):
pass
if __name__ == '__main__':
dog = Dog()
dog.words('汪汪汪')
备注
Mixin类应该是单一职责的
抽象模式
from abc import ABCMeta, abstractmethod
class MyABC(metaclass=ABCMeta):
@abstractmethod
def my_abstract_method(self):
pass
@classmethod
@abstractmethod
def my_abstract_classmethod(cls):
pass
@staticmethod
@abstractmethod
def my_abstract_staticmethod(self):
pass
@property
@abstractmethod
def my_abstract_property(self):
pass
@my_abstract_property.setter
@abstractmethod
def my_abstract_property(self, val):
pass