摘要: 适配器模式 模式说明 适配器模式就是将一个类的接口,转换成客户期望的另一个接口。适配器让原本接口不兼容的类可以合作无间。 在适配器模式中,我们可以定义一个包装类,包装不兼容接口的对象,这个包装类就是适配器,它所包装的对象就是适配者。 适配器提供给客户需要的接口,适配器的实现就是将客户的请求转换成对适 阅读全文
posted @ 2019-07-09 11:01 贤者之石 阅读(132) 评论(0) 推荐(0) 编辑
摘要: 原型模式 模式说明 所谓原型模式就是用原型实例指定创建对象的种类,并且通过复制这些原型创建新的对象。 说到复制,就会有深/浅两种复制,这是面向对象的值类型和引用类型的差异,具体不作说明 模式结构图 程序示例 说明:无 代码: 1 import copy 2 class WorkExp: 3 plac 阅读全文
posted @ 2019-07-09 11:01 贤者之石 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 代理模式 模式说明 代理模式就是给一个对象提供一个代理,并由代理对象控制对原对象的引用。 在代理模式中,“第三者”代理主要是起到一个中介的作用,它连接客户端和目标对象。 模式结构图 程序示例 说明:男孩给女孩送礼物,通过她的闺蜜来代理完成 代码: 1 class Girl(object): 2 de 阅读全文
posted @ 2019-07-09 11:00 贤者之石 阅读(147) 评论(0) 推荐(0) 编辑
摘要: 桥接模式 模式说明 桥接模式即将抽象部分与它的实现部分分离开来,使他们都可以独立变化。 桥接模式将继承关系转化成关联关系,它降低了类与类之间的耦合度,减少了系统中类的数量,也减少了代码量。 个人感觉,代理模式、适配器模式和桥接模式相类似,代理模式是一个代理对外表示一个特定的类,适配器模式相当于一个适 阅读全文
posted @ 2019-07-09 10:59 贤者之石 阅读(152) 评论(0) 推荐(0) 编辑
摘要: 组合模式 模式说明 组合模式组合多个对象形成树形结构以表示“整体-部分”的结构层次。 组合模式对单个对象(叶子对象)和组合对象(组合对象)具有一致性,它将对象组织到树结构中,可以用来描述整体与部分的关系。同时它也模糊了简单元素(叶 子对象)和复杂元素(容器对象)的概念,使得客户能够像处理简单元素一样 阅读全文
posted @ 2019-07-09 10:54 贤者之石 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 解释器模式 模式说明 所谓解释器(Interpreter)就是将一系列指令转化成代码,能够执行的代码。Interpreter本来就有翻译的意思。GoF给它的定义是:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子。 模式结构图 程序示例 说明:一个上下文 阅读全文
posted @ 2019-07-09 10:50 贤者之石 阅读(172) 评论(0) 推荐(0) 编辑
摘要: 外观模式 模式说明 所谓外观模式就是提供一个统一的接口,用来访问子系统中的一群接口。 模式结构图 程序示例 说明:灯光、荧屏、空调、电视一键开启、关闭 代码: class Light(object): def on(self): print 'light turn on' def off(self) 阅读全文
posted @ 2019-07-09 10:49 贤者之石 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 享元模式 模式说明 所谓享元模式就是运行共享技术有效地支持大量细粒度对象的复用。系统使用少量对象,而且这些都比较相似,状态变化小,可以实现对象的多次复用。 FlyweightFactory内定义的实体是不变的(共享的),传入参数是状态变化。 缓存形式,传入参数已经被缓存则直接返回,否则创建参数对应实 阅读全文
posted @ 2019-07-09 10:47 贤者之石 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 责任链模式 模式说明 避免请求发送者与接收者耦合在一起,让多个对象都有可能接收请求,将这些对象连接成一条链,并且沿着这条链传递请求,直到有对象处理它为止,这就是职责链模式。 模式结构图 程序示例 说明:处理请假条,不同职位的领导处理不同天数的假条 代码: class LeaveRequest(obj 阅读全文
posted @ 2019-07-09 10:44 贤者之石 阅读(362) 评论(0) 推荐(0) 编辑
摘要: C# 委托 (一)—— 委托、 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992 C# 委托 (一)—— 委托、 泛型委托与Lambda表达式 2018年08月19日 20:46:47 wnvalentin 阅读数 2992 C# 委托 阅读全文
posted @ 2019-07-09 10:34 贤者之石 阅读(448) 评论(0) 推荐(0) 编辑
摘要: 命令模式 模式说明 将请求封装成对象,从而使可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤消的操作。 模式结构图 程序示例 说明:调用者是遥控器,接受者是电视 代码: class TV(object): def open(self): print 'turn on tv' d 阅读全文
posted @ 2019-07-09 10:33 贤者之石 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 中介者模式 模式说明 所谓中介者模式就是用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 模式结构图 程序示例 说明:房主、租客与中介 代码: class Mediator(object): def sendmsg(sel 阅读全文
posted @ 2019-07-09 10:30 贤者之石 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 备忘录模式 模式说明 所谓备忘录模式就是在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态,这样可以在以后将对象恢复到原先保存的状态。 模式结构图 程序示例 说明:游戏存档,恢复 代码: class Memonto(object): _blood=0 _magic=0 def 阅读全文
posted @ 2019-07-09 10:28 贤者之石 阅读(182) 评论(0) 推荐(0) 编辑
摘要: 观察者模式 模式说明 定义了一种一对多的关系,让多个观察对象同时监听一个主题对象,当主题对象状态发生变化时会通知所有观察者。 模式结构图 程序示例 说明:两个观察者,得到同一个通知 代码: class Subject(object): observers=[] info='' def __init_ 阅读全文
posted @ 2019-07-09 10:25 贤者之石 阅读(154) 评论(0) 推荐(0) 编辑
摘要: 状态模式 模式说明 当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。 模式结构图 程序示例 说明:程序员一天不同时刻的状态 代码: import time class IState(object): def work(self): pass class Programer(o 阅读全文
posted @ 2019-07-09 10:22 贤者之石 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 模板方法模式 模式说明 定义一个操作中的算法的骨架,而将步骤延迟到子类中。模板方法使得子类可以不改变一个算法的结构即可重定义算法的某些特定步骤。 模式结构图 程序示例 说明:泡茶与泡咖啡使用同一套流程 代码: class Beverage(object): """description of cla 阅读全文
posted @ 2019-07-09 10:21 贤者之石 阅读(107) 评论(0) 推荐(0) 编辑
摘要: 策略模式 模式说明 定义算法家族并且分别封装,它们之间可以相互替换而不影响客户端。 模式结构图 程序示例 说明:选择不同排序算法 代码: class OrderStrategy(object): """sort base""" def Sort(self,*args): pass class Bub 阅读全文
posted @ 2019-07-09 10:21 贤者之石 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 装饰者模式 模式说明 装饰者模式装饰者模式可以动态地给一个对象增加一些额外的职责。就增加功能来说,装饰者模式相比生成子类更为灵活。 模式结构图 程序示例 说明:一辆车,装饰窗户,装饰轮子 代码: class Car(object): def description(self): print 'bas 阅读全文
posted @ 2019-07-09 10:20 贤者之石 阅读(76) 评论(0) 推荐(0) 编辑
摘要: 访问者模式 模式说明 访问者模式即表示一个作用于某对象结构中的各元素的操作,它使我们可以在不改变各元素的类的前提下定义作用于这些元素的新操作。 模式结构图 程序示例 说明:男人、女人被成功、失败‘访问’的反应 代码: # -*- coding: cp936 -*- class Person: def 阅读全文
posted @ 2019-07-09 10:20 贤者之石 阅读(104) 评论(0) 推荐(0) 编辑
只有注册用户登录后才能阅读该文。 阅读全文
posted @ 2019-07-09 10:19 贤者之石 阅读(4) 评论(0) 推荐(0) 编辑