赞
踩
第一章 前言
第二章 观察者模式
第三章 状态模式
第四章 中介模式
第五章 装饰器模式
第六章 单例模式
第七章 克隆模式
第八章 职责链模式
第九章 代理模式
第十章 外观模式
第十一章 迭代模式
第十二章 组合模式
第十三章 构建模式
第十四章 适配模式
第十五章 策略模式
第十六章 简单工厂模式
第十七章 工厂方法模式
第十八章 抽象工厂模式
第十九章 命令模式
第二十章 备忘录模式
第二十一章 享元模式
第二十二章 访问模式
第二十三章 模板模式
第二十四章 桥接模式
第二十五章 解释器模式
第二十六章 过滤器模式
第二十七章 对象池技术
第二十八章 回调机制
第二十九章 MVC模式
附录
过滤器模式就是根据某种规则,从一组对象中,过滤掉一些不符合要求的对象的过程。
from abc import ABC, abstractmethod class Filter(ABC): @abstractmethod def doFilter(self, elements): pass class FilterChain(Filter): def __init__(self, filters:"list[Filter]"= []) -> None: self._filters = filters def addFilter(self, filter:Filter): self._filters.append(filter) def removeFilter(self, filter:Filter): self._filters.remove(filter) def doFilter(self, elements): for filter in self._filters: elements = filter.doFilter(elements) return elements class FilterImplA(Filter): def doFilter(self, elements): return filter(lambda x: x > 0, elements) class FilterImplB(Filter): def doFilter(self, elements): return filter(lambda x: x < 10, elements) if __name__ == "__main__": elements = [-10,2,3,10,12,0,-12,-1] fc = FilterChain([FilterImplA(), FilterImplB()]) print(list(fc.doFilter(elements)))
过滤器模式中主要有三个角色,在设计过滤器模式时要找到并区分这些角色。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。