设计模式
抠脚的鱼
这个作者很懒,什么都没留下…
展开
-
设计模式之桥梁模式
目录由来目的适用场景结构角色效果实例 由来 传统地,当一个抽象可能有多个实现时,通常用继承来协调它们:抽象类定义该抽象的接口,具体的子类则用不同的方式加以实现。 但是此方法有时不够灵活:继承机制将抽象部分与它的实现部分绑定,难以对抽象部分和实现部分独立地进行修改、扩充和重用。 目的 桥接模式将抽象部分与实现部分分离,使它可以独立的变化。 适用场景 不希望在抽象和它的实现部分之间有一个固定的绑定关...原创 2019-04-06 21:04:15 · 84 阅读 · 0 评论 -
设计模式之装饰模式
目录由来意图动机适用场合结构、角色和协作代码示例效果 由来 装饰模式以对客户透明的方式动态地给一个对象附加上更多的责任,不改变接口,但加入责任(不是通过继承,而是通过组合实现) 意图 装饰模式别名包装器(Wrapper),旨在动态地给一个对象添加一些额外的职责,就增加功能来说,装饰模式比子类更为灵活。 动机 希望给某个对象而不是整个类添加一些功能 继承机制一种有效途径,但不够灵活 较为灵活的方式...原创 2019-04-08 17:14:36 · 80 阅读 · 0 评论 -
设计模式之适配器模式
目录目的适用场景角色适配器类适配器对象适配器效果 目的 将一个类的接口转换成客户希望的另一个接口 适用场景 使用一个已存在的类,而它的接口不符合要求 创建一个可以复用的类,该类可以与其他不相关的类或不可预 见的类(即那些接口可能不一定兼容的类)协同工作 使用一些已经存在的子类,但不可能通过子类化以匹配各自接 口。对象适配器可以适配它的父类接口 角色 Client:代表引用用户期望接口的类 Ta...原创 2019-04-03 09:58:00 · 79 阅读 · 0 评论 -
设计模式之代理模式
目录意图适用性结构与角色代码示例效果类似模式 意图 为其他对象提供一种代理以控制对这个对象的访问 适用性 远程(Remote) 代理:为一个对象在不同地址空间提供局部代表 虚拟(Virtual) 代理:在需要创建开销很大对象时缓存对象信息 保护(Protection) 代理:控制对原始对象的访问 智能引用(Smart Reference)代理:当一个对象被引用时,提供一些额外的操作,例如记录访问...原创 2019-04-12 16:24:31 · 106 阅读 · 0 评论 -
设计模式之外观模式
目录设计原则意图动机适用性结构和参与者效果代码示例评价 设计原则 迪米特法则:应当使得软件的不同对象彼此之间尽量“老死不相往来”,降低系统维护成本 意图 提供了一个统一的接口,用来访问子系统中的一群接口 Facade定义了一个高层接口,让子系统更容易使用 动机 将一个系统划分成为若干个子系统有利于降低系统的复杂性 设计目标是使子系统间的通信和相互依赖关系达到最小 途径之一是就是引入一个 外观...原创 2019-04-09 17:12:21 · 95 阅读 · 0 评论 -
设计模式之享元模式
目录意图和动机意图动机关键适用性结构与参与者代码示例效果 意图和动机 意图 运用共享技术有效地支持大量细粒度的对象 避免大量拥有相同内容的小类的开销 使大家共享一个对象 动机 OO技术很好地解决一些灵活性或可扩展性问题 某些情况对象数量太多,导致运行时代价巨大 Flyweight是一个共享对象 享元模式通过共享技术实现相同/相似对象重用 关键 关键概念是内部状态和外部状态 内部状态存储于...原创 2019-04-13 10:52:46 · 176 阅读 · 0 评论 -
设计模式之组合模式
目录由来意图动机适用情形结构与参与者代码示例效果实现类似的模型 由来 组合模式有时候又叫做部分-整体模式。在树型结构的问题中,模糊了简单元素和复杂元素的概念, 客户程序可以向处理简单元素一样来处理复杂元素,使得客户程序与复杂元素的内部结构解耦。 组合对象既可以包括单一对象,也可以包括组合对象 意图 将对象组合成树形结构——“部分/整体” 层次结构 使用户对单一对象和组合对象使用具有一致性接口 ...原创 2019-04-10 09:39:12 · 101 阅读 · 0 评论 -
模板方法
目录由来意图、动机和适用性结构与参与者代码示例效果 由来 模板方法实现父类和子类对象之间职责的划分 使用继承机制使得父类和子类之间达到分工合作的目的 基类中确定算法框架(不变), 子类实现具体工作(可变) 意图、动机和适用性 意图 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中 子类不需要改变算法结构即可重定义算法的某些步骤 动机 将相同的代码放在父类中,不同的方法实现放在不同的子类中...原创 2019-05-09 09:46:02 · 102 阅读 · 0 评论 -
设计模式之命令模式
目录意图和动机意图动机适用性结构和参与者协作效果 意图和动机 意图 将请求封装为对象,用不同请求对客户参数化 对请求排队或记录请求日志,支持可取消的操作 动机 对请求排队或记录请求日志,支持可取消的操作,对请求排队或记录请求日志,支持可取消的操作,只需在程序运行时指定具体的请求接收者即可 只需在程序运行时指定具体的请求接收者即可 适用性 系统需要将请求调用者和请求接收者解耦,使得调用者和...原创 2019-05-17 15:12:50 · 149 阅读 · 0 评论