摘要:
模式说明定义算法家族并且分别封装,它们之间可以相互替换而不影响客户端。模式结构图程序示例说明:选择不同排序算法代码:class OrderStrategy(object): """sort base""" def Sort(self,*args): passclass Bu... 阅读全文
摘要:
模式说明当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。模式结构图程序示例说明:程序员一天不同时刻的状态代码:import timeclass IState(object): def work(self): passclass Programer(obje... 阅读全文
摘要:
模式说明定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者。模式结构图程序示例说明:两个观察者,得到同一个通知代码:class Subject(object): observers=[] info='' def __init__(s... 阅读全文
摘要:
模式说明所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。模式结构图程序示例说明:游戏存档,恢复代码:class Memonto(object): _blood=0 _magic=0 def set... 阅读全文
摘要:
模式说明所谓中介者模式就是用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。模式结构图程序示例说明:房主、租客与中介代码:class Mediator(object): def sendmsg(self,msg,per... 阅读全文
摘要:
模式说明将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。模式结构图程序示例说明:调用者是遥控器,接受者是电视代码:class TV(object): def open(self): print 'turn on tv' ... 阅读全文
摘要:
模式说明避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止,这就是职责链模式。模式结构图程序示例说明:处理请假条,不同职位的领导处理不同天数的假条代码:class LeaveRequest(object): def... 阅读全文
摘要:
模式说明所谓享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。FlyweightFactory内定义的实体是不变的(共享的),传入参数是状态变化。缓存形式,传入参数已经被缓存则直接返回,否则创建参数对应实体,放入缓存并返... 阅读全文
摘要:
模式说明所谓外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。模式结构图程序示例说明:灯光、荧屏、空调、电视一键开启、关闭代码:class Light(object): def on(self): print 'light turn on' def off(sel... 阅读全文