随笔分类 -  设计模式

备忘录设计模式
摘要:图1-1 黑箱备忘录模式 MementoIF是一个窄接口也是一个标识接口。Memento备忘者是Originator发起者的内部类,由于Memento的方法都是私有的,所以只有发起者能够调用Memento的方法,Caretaker负责人是没法调用的。这是一个安全性的设计。是JAVA双重接口(宽窄接口 阅读全文
posted @ 2018-02-27 14:35 花溪的小石头 阅读(221) 评论(0) 推荐(0)
策略模式
摘要:环境角色:持有一个Strategy类的的引用。 抽象策略角色:通常由一个抽象类或接口实现。 具体策略角色:包装了相关的算法或行为。 想买一辆车,车价30W,走普通客户路线吧折扣后的车价:264000.0太贵了,还好亲戚是总经理,走大客户路线吧折扣后的车价:225000.0 策略模式的优缺点: 优点: 阅读全文
posted @ 2018-02-27 10:27 花溪的小石头 阅读(154) 评论(0) 推荐(0)
迭代器模式
摘要:白箱聚集+外部迭代子 黑箱聚集+内部迭代子 待更新。。。 阅读全文
posted @ 2018-02-27 09:56 花溪的小石头 阅读(111) 评论(0) 推荐(0)
装饰模式
摘要:装饰模式的优点和缺点: (1)装饰模式与继承关系的目的都是要扩展对象的功能,但是装饰模式可以提供更多的灵活性。 (2)通过使用不同的具体装饰类以及这些装饰类的排列组合,设计师可以创造出很多不同行为的组合。 (3)灵活性是把双刃剑,使用时比继承更容易出错。 众所周知很多时候买车都是要加装潢的,也就是所 阅读全文
posted @ 2018-02-26 13:58 花溪的小石头 阅读(128) 评论(0) 推荐(0)
组合(整体-部分)模式
摘要:组合模式定义如下: 组合模式分为透明组合模式和安全组合模式,其分别的UML图如下: 图1-1 透明组合模式 图1-2 安全组合模式 透明组合模式和安全组合模式的区别就是安全组合模式将管理其他组件的功能单独提出,叶子组件不具备管理其他组件的功能。 组合模式为处理树形结构提供了一种较为完美的解决方案,它 阅读全文
posted @ 2018-02-26 13:42 花溪的小石头 阅读(352) 评论(0) 推荐(0)
设计模式汇总
摘要:23种设计模式: 创建型: 工厂方法 抽象工厂 单例 原型 建造者 结构型: 适配器 组合(整体-部分) 装饰模式 桥接模式 享元模式 代理模式 外观模式 行为型: 观察者模式 策略模式 状态模式 模板方法模式 备忘录模式 责任链模式 命令模式 解释器模式 中介者模式 迭代器模式 访问者模式 补充设 阅读全文
posted @ 2018-02-26 10:29 花溪的小石头 阅读(133) 评论(0) 推荐(0)
建造者模式
摘要:抽象建造者定义建造的零件方法和获取产品的方法,具体建造者实现这些方法。 导演角色主要调用具体建造者角色用以创建产品对象 产品角色是建造的最终产品,一般来说一个系统会有多于一个的产品类,而且这些产品类并不一定有共同的接口,可以完全是不相关联的。 下面依然以造车示例建造者模式: 建造者模式的导演者其实可 阅读全文
posted @ 2018-02-26 10:18 花溪的小石头 阅读(173) 评论(0) 推荐(0)
抽象工厂模式
摘要:抽象工厂模式也是23种设计模式中的一种,它隶属于创建性模式,与之前简单工厂,工厂方法设计模式相比,抽象工厂要复杂的多。 简单工厂模式违反了开闭原则,工厂方法模式生产具有产品等级及产品簇的产品会十分复杂,每生产一个新产品即要创建一个新产品类和一个新工厂类。 抽象工厂设计模式结合了前两种模式的优缺点,但 阅读全文
posted @ 2018-02-24 16:42 花溪的小石头 阅读(205) 评论(0) 推荐(0)
工厂模式
摘要:简单工厂模式有一个缺陷,那就是不符合OCP开闭原则,当我们想生产一辆新品种车型时,必须修改简单工厂类源码。而工厂模式由于一种工厂只生产一种产品。当我们需要生产一辆新品种汽车,只需要新建一个新品类的工厂即可,即对增加开放,对修改关闭。符合开闭原则。 在UML图上可以清晰的看出,工厂模式只比简单工厂模式 阅读全文
posted @ 2018-02-24 15:20 花溪的小石头 阅读(144) 评论(0) 推荐(0)
简单工厂模式
摘要:简单工厂模式不是23种设计模式中的一种,但却是最基础的创建性设计模式。 抽象产品与具体产品之间可以是泛化也可以是实现关系。简单工厂与具体产品为依赖关系。 通过一个简单的汽车工厂例子阐述简单工厂设计模式的原理。 阅读全文
posted @ 2018-02-24 14:57 花溪的小石头 阅读(156) 评论(0) 推荐(0)
设计模式之适配器模式
摘要:1. 概述 将一个类的接口转换成客户希望的另外一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 2. 解决的问题 即Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以在一起工作。 下面是两个非常形象的例子 3. 模式中的角色 3.1 目标接口( 阅读全文
posted @ 2017-03-17 14:08 花溪的小石头 阅读(148) 评论(0) 推荐(0)