
设计模式
python_tty
努力成为python大牛
展开
-
单态模式--所有实利共享状态
单态模式就是所有的对象共享相同的状态 class Brog(object): __shared_state = {"1": "2"} def __init__(self): self.x = 1 self.__dict__ = self.__shared_state b = Brog() b.x = 4 b1 = Brog() >>...原创 2018-07-19 14:34:12 · 341 阅读 · 0 评论 -
观察者模式
观察者模式定义了对象之间的一对多的依赖,这样一来,一个对象的状态改变了,依赖它的对象都会收到通知并自动更新。 当主题的状态发生改变的时候,它会通知所有订阅它的观察者,并把最新的数据推送给观察者 代码: """ 观察者模式 在对象之间定义了一对多的依赖,这样一来,当一个对象的状态发生了变化,依赖它的对象都会收到通知,并自动更新 《head first 设计模式》中的观察者模式 python实现 ...原创 2019-04-28 15:15:01 · 190 阅读 · 0 评论 -
装饰器模式
装饰器模式动态将责任附加到对象上。想要扩展功能,装饰者提供有别于继承的另一种选择。 装饰器模式的特点: 继承属于扩展形式之一,但不见得是达到弹性设计的最佳方式 在我们的设计中,应该允许行为被扩展,而不用修改现有的代码 组合和委托可用在运行时动态的加上新的行为 除了继承,装饰者模式也可以让我们扩展行为 装饰者模式会导致出现很多小的对象,过度使用,会让程序变的很复杂 可以用很很多个装饰者包装一个组件...原创 2019-04-29 10:53:57 · 322 阅读 · 0 评论 -
策略模式
策略模式定义了算法族,分别封装起来,让它们之间可以互相替换,此模式使算法的变化独立于使用算法的客户。 python实现: """ 策略模式 """ class Duck(object): def __init__(self, fly, quack): self.fly = fly self.quack = quack def perform_...原创 2019-04-30 11:48:25 · 164 阅读 · 0 评论 -
单例模式测试
测试环境:flask + gunicorn gunicorn配置:1个master 2个worker worker_class: sync 初始化falsk app的代码之后加入单例模式的代码: class Single(object): _instance = None def __new__(cls, *args, **kwargs): ...原创 2019-05-16 16:14:57 · 881 阅读 · 0 评论