摘要: 介绍 建造者模式(又叫生成器模式)是一种创建型设计模式, 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 建造者模式的好处就是使得建造代码与表示代码分离,由于建造者隐藏了该产品是如何组装的,所以若需要改变一个产品的内部表示,只需要再定义一个具体的建造者就可以了。 应用实例 阅读全文
posted @ 2020-11-27 15:17 fangyanr 阅读(140) 评论(0) 推荐(0) 编辑
摘要: 介绍 享元模式是一种结构型设计模式, 它摒弃了在每个对象中保存所有数据的方式, 通过共享多个对象所共有的相同状态, 让你能在有限的内存容量中载入更多对象。 主要解决:在有大量对象时,有可能会造成内存溢出,我们把其中共同的部分抽象出来,如果有相同的业务请求,直接返回在内存中已有的对象,避免重新创建。 阅读全文
posted @ 2020-11-27 14:12 fangyanr 阅读(102) 评论(0) 推荐(0) 编辑
摘要: 介绍 模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 当我们要完成在某一细节层次一致的一个过程或一系列步骤,但其个别步骤在更详细的层次上的实现可能不同时,我们通常考虑用模板方法来处理。 模板方法模式是通过把不变行为搬移到超类,去除 阅读全文
posted @ 2020-11-27 09:49 fangyanr 阅读(91) 评论(0) 推荐(0) 编辑
摘要: 介绍 原型模式是一种创建型设计模式, 使你能够复制已有对象, 而又无需使代码依赖它们所属的类。 问题 如果你有一个对象, 并希望生成与其完全相同的一个复制品, 你该如何实现呢? 首先, 你必须新建一个属于相同类的对象。 然后, 你必须遍历原始对象的所有成员变量, 并将成员变量值复制到新对象中。 不错 阅读全文
posted @ 2020-11-26 17:45 fangyanr 阅读(109) 评论(0) 推荐(0) 编辑
摘要: 介绍 状态模式是一种行为设计模式, 让你能在一个对象的内部状态变化时改变其行为, 使其看上去就像改变了自身所属的类一样。 主要解决的是当一个对象状态转换的条件表达式过于复杂时的情况。把状态的判断逻辑转移到表示不同状态的一系列类当中,可以把复杂的判断逻辑简化。 当一个对象的行为取决于它的状态,并且它必 阅读全文
posted @ 2020-11-25 18:45 fangyanr 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 介绍 桥接模式是一种结构型设计模式, 可将一个大类或一系列紧密相关的类拆分为抽象和实现两个独立的层次结构, 从而能在开发时分别使用。 “将抽象部分与它的实现部分分离”:实现系统可能有多角度分类,每一种分类都有可能变化,那么就把这种多角度分离出来让它们独立变化,减少它们之间的耦合。 关键代码:抽象类依 阅读全文
posted @ 2020-11-25 18:37 fangyanr 阅读(127) 评论(0) 推荐(0) 编辑
摘要: 介绍 中介者模式是一种行为设计模式, 能让你减少对象之间混乱无序的依赖关系。 该模式会限制对象之间的直接交互, 迫使它们通过一个中介者对象进行合作。 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显示地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互。 中介者模式一般应用于一 阅读全文
posted @ 2020-11-25 18:25 fangyanr 阅读(149) 评论(0) 推荐(0) 编辑
摘要: 介绍 备忘录模式是一种行为设计模式, 允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。 如何解决:通过一个备忘录类专门存储对象状态。 关键代码:客户不与备忘录类耦合,与备忘录管理类耦合。 备忘录模式将创建状态快照 (Snapshot) 的工作委派给实际状态的拥有者原发器 (Originat 阅读全文
posted @ 2020-11-25 18:17 fangyanr 阅读(141) 评论(0) 推荐(0) 编辑
摘要: 介绍 组合模式是一种结构型设计模式, 将对象组成树形结构以表示‘部分-整体’的层次机构。组合模式使得用户对单个对象和组合对象的使用具有一致性。 如何解决:树枝和叶子实现统一接口,树枝内部组合该接口。 关键代码:树枝内部组合该接口,并且含有内部属性 List,里面放 Component。 该方式的最大 阅读全文
posted @ 2020-11-25 16:31 fangyanr 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 介绍 命令模式是一种行为设计模式, 它可将请求转换为一个包含与请求相关的所有信息的独立对象。 该转换让你能根据不同的请求将方法参数化、 延迟请求执行或将其放入队列中, 且能实现可撤销操作。 命令模式把请求一个操作的对象与知道怎么执行一个操作的对象分隔开。 真实世界类比 在餐厅里点餐。 在市中心逛了很 阅读全文
posted @ 2020-11-24 16:59 fangyanr 阅读(134) 评论(0) 推荐(0) 编辑