awsome-python-patterns简单总结
behavioral行为
catalog (目录模式)
类中根据init指定的参数执行相应相应的函数
使用一个字典来代替多个条件。
调用方式
被调用函数:静态方法无参数
self._static_method_choices[self.param]()
被调用函数:普通函数
self._instance_method_choices[self.param].__get__(self)()
被调用函数:类函数
self._class_method_choices[self.param].__get__(None, self.__class__)()
def __get__(self, obj: Optional[object], type: Optional[type]) -> MethodType: ...
Chain of responsibility(责任链)
对象版的:if … elif … elif … else …
扩充:tree of responsibility
实现
抽象类:Handler
def handle(self, request):
res = self.check_range(request) # 划分范围,及处理
if not res and self.successor: # 责任传递
self.successor.handle