摘要: 定义 备忘录模式定义: 生活是现场直播,时光不能倒流,但是在软件设计中, 使用备忘录模式,相当于有了后悔药 例如: 在看电子书时,保存的书签 模式结构 Originnator(发起人):负责创建备忘录.用以保存其状态 Mementor(备忘录):负责保存 Originnator的内部状态 Caret 阅读全文
posted @ 2017-02-26 21:13 liuconglin 阅读(251) 评论(0) 推荐(0)
摘要: 定义 适配器模式定义: 需要的东西就在眼前,但却不能使用,短时间内无非改造,于是我们就想办法适配它 例如: 一些国家的电压是不同的, 但是笔记本电脑通过电源适配器,都能把电源变成需要的电压 模式结构 Target: 客户期待的接口,可以是抽象类或者接口 Adapter: 在内部包装一个Adeptee 阅读全文
posted @ 2017-02-25 23:14 liuconglin 阅读(377) 评论(0) 推荐(0)
摘要: 定义 状态模式定义: 消除庞大的条件分支,将特定状态的行为放入一个对象中 生活中:开灯和关灯是两个状态 模式结构 Context: 上下文环境,维护一个状态实例,定义当前的状态 State: 抽象状态类,定义一个接口,封装与Context的一个特定状态相关的行为 ConcreteState:具体状态 阅读全文
posted @ 2017-02-24 23:22 liuconglin 阅读(287) 评论(0) 推荐(0)
摘要: 定义 抽象工厂模式定义: 抽象工厂模式通常是用于创建一族产品,并且这族产品分不同的等级;不同的具体工厂类生产不同等级的一族产品 比如下图(来源于网络) 两厢车和三厢车称为两个不同的等级结构;2.0排量两厢车和2.0排量三厢车成为同一个产品族。 与工厂方法模式的区别 工厂的产品全部属于同一个等级结构, 阅读全文
posted @ 2017-02-23 23:07 liuconglin 阅读(1317) 评论(0) 推荐(0)
摘要: 定义 观察者模式定义: 将一个系统分割成一系列相互协作的类, 需要维护相关对象间的一致性, 为了维持一致性而使各类紧密耦合,这样会给维护,扩展和重用都带来不便 生活中例子: 模式结构图: Subject: 抽象通知者, 把所有观察者对象的引用保存在一个聚焦里,定义增加,删除和通知方法 Observe 阅读全文
posted @ 2017-02-22 22:19 liuconglin 阅读(446) 评论(0) 推荐(0)
摘要: 定义 建造者模式定义: 既保证流程不变, 每个流程实现的具体细节可以变化, 比如:建造楼房, 先打桩,在搭架子.... 在程序中对应的是: 抽离出对象的组成部分以及他们的装配方式 模式机构 Build: 抽象类,创建Product对象的各个部件指定的抽象接口 ConcreteBuild: 具体建造者 阅读全文
posted @ 2017-02-21 13:44 liuconglin 阅读(433) 评论(0) 推荐(0)
摘要: 外观模式的用意是为子系统提供一个集中化和简化的沟通渠道,而不是向子系统加入新的行为 生活中的例子: 定义 定义: 为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这一接口使得这一子系统更加容易使用 结构图 Facade: 是模式的核心,指导所有子系统的功能, 可根据客户端的需求定制 阅读全文
posted @ 2017-02-19 22:29 liuconglin 阅读(520) 评论(0) 推荐(0)
摘要: 有时候,我们会遇到由一系列步骤构成的过程,这个过程从高层次上看是相同的,但有些步骤的实现可能不同,我们就要考虑使用模板方法 生活中的例子:坐交通工具上班, A开车,B做公交, 交通工具就是一个抽象模板 定义 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,模板方法使得子类不改变算法的结构,即可 阅读全文
posted @ 2017-02-18 23:16 liuconglin 阅读(279) 评论(0) 推荐(0)
摘要: 简单的复制粘贴极有可能造成重复代码的灾难, 但是java中提供了克隆的功能, 如果一个对象创建过程复杂,又要频繁使用, 在初始化信息不发生变化的情况下,应当采取克隆而不是new一个对象 定义 原型模式: 用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 也就是说, 只需知道原型对象的类 阅读全文
posted @ 2017-02-17 22:21 liuconglin 阅读(347) 评论(0) 推荐(0)
摘要: 生活中的例子: 定义 工厂方法模式: 定义一个创建对象的接口, 让子类决定实例化哪一个类, 工厂方法使一个类的实例化延伸到了子类 模式结构 Creator: 抽象工厂, 声明工厂方法 ConcreteCreator: 具体工厂,创建具体产品对象 Product:抽象产品,声明产品共有的接口 Conc 阅读全文
posted @ 2017-02-16 20:05 liuconglin 阅读(469) 评论(0) 推荐(0)