设计模式总结
2016-01-30 20:46
232 查看
学习了设计模式,感觉其精髓就是高内聚低耦合。现在先简单对23模式进行分类和概括。
![](http://img.blog.csdn.net/20160130203859460)
创建型模式
单例模式(Singleton
Pattern)类存在唯一的实例,可以控制客户对实例的访问。
工厂方法模式(Fctory Pattern)需要创建一个对象接口,借助子类来决定实例化哪个类。
抽象工厂模式(AbstractFactory Pattern),需要对两个抽象产品进行具体的实现,这里要借助创建抽象工厂接口,利用接口包含的抽象方法,创建相应具体的工厂以实现产品对象,而不需制定具体的类。
建造者模式(Builder Pattern)具体的建造者需要通过实现指挥者构建的Builder接口,构造和装配各个部件,以完成具体产品的实现。将一个复杂对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。它不必在乎产品创造的过程,只要被告诉需要什么就能用同样的构建过程创建不同的产品给客户,这样就避免了代码的冗余,还体现了代码之间的高内聚和松耦合思想。
原型模式(Prototype Pattern)就是在原型的基础上通过拷贝克隆的方式创建新的对象,各项功能完全复制原型过程。
结构型模式
适配器模式(Adapter Pattern)通过在内部包装一个Adaptee对象把源接口转换成客户所期待的接口,然后实现与需要适配的类一同工作的功能,避免了不兼容性。
装饰模式(Decorat Pattern)通过一个对象接口给对象动态的添加某些职责。
桥接模式(Bridge Pattern)抽象与实现相分离,各自独立变化不受影响。
组合模式(Composite Pattern)树形结构,整体和部分具有层次性,但是使用却存在一致性。
享元模式(Flyweight Pattern)在各个对象之间实现共享。
代理模式(Proxy Pattern)通过定义共用接口,使代理可以访问实体,并替代实体以控制对这个对象的访问。
外观模式(Facade Pattern)通过定义接口来提供一致的界面。通过引用外观对象,为子系统提供单一简单的屏障,减小子系统建的通信和相互依赖关系。
行为模式
观察者模式
观察者模式(Observer Pattern)抽象观察者为具体观察者定义接口,使其及时更新,意识本身状态与主题相协调。各个对象之间相互依赖,自动更新。
模板方法模式(Template Pattern)定义某操作的算法骨架后将某些步骤延迟到子类,是子类不改变算法结构而重定义该算法某些特定步骤。
命令模式(Command Pattern)就是命令执行相关操作。
状态模式(State Pattern)内部状态改变导致的行为改变,就想修改了它的类。
职责链模式(Chain of responsibility Pattern )每个对象都队请求进行处理,形成链条式反应。
策略模式
解释器模式(Interpreter Pattern)解释语言中的句子。
中介者模式(Mediator Pattern)通过一个中介对象来封装一系列的对象交互。
访问者模式(Visitor Pattern)不改变各元素的类,重新定义新操作。
策略模式(Strategy Pattern)将算法封装,实现相互替换,可独立于使用它的客户而变化。
备忘录模式(Memento Pattern)就是对当前状态进行保存方便以后恢复。
迭代器模式(Iterator Pattern)通过迭代器定义访问列表元素的接口,迭代器对象负责跟踪当前元素,并且知道哪些元素已经遍历过。
创建型模式
单例模式(Singleton
Pattern)类存在唯一的实例,可以控制客户对实例的访问。
工厂方法模式(Fctory Pattern)需要创建一个对象接口,借助子类来决定实例化哪个类。
抽象工厂模式(AbstractFactory Pattern),需要对两个抽象产品进行具体的实现,这里要借助创建抽象工厂接口,利用接口包含的抽象方法,创建相应具体的工厂以实现产品对象,而不需制定具体的类。
建造者模式(Builder Pattern)具体的建造者需要通过实现指挥者构建的Builder接口,构造和装配各个部件,以完成具体产品的实现。将一个复杂对象的构建与它的表示分离,是的同样的构建过程可以创建不同的表示。它不必在乎产品创造的过程,只要被告诉需要什么就能用同样的构建过程创建不同的产品给客户,这样就避免了代码的冗余,还体现了代码之间的高内聚和松耦合思想。
原型模式(Prototype Pattern)就是在原型的基础上通过拷贝克隆的方式创建新的对象,各项功能完全复制原型过程。
结构型模式
适配器模式(Adapter Pattern)通过在内部包装一个Adaptee对象把源接口转换成客户所期待的接口,然后实现与需要适配的类一同工作的功能,避免了不兼容性。
装饰模式(Decorat Pattern)通过一个对象接口给对象动态的添加某些职责。
桥接模式(Bridge Pattern)抽象与实现相分离,各自独立变化不受影响。
组合模式(Composite Pattern)树形结构,整体和部分具有层次性,但是使用却存在一致性。
享元模式(Flyweight Pattern)在各个对象之间实现共享。
代理模式(Proxy Pattern)通过定义共用接口,使代理可以访问实体,并替代实体以控制对这个对象的访问。
外观模式(Facade Pattern)通过定义接口来提供一致的界面。通过引用外观对象,为子系统提供单一简单的屏障,减小子系统建的通信和相互依赖关系。
行为模式
观察者模式
观察者模式(Observer Pattern)抽象观察者为具体观察者定义接口,使其及时更新,意识本身状态与主题相协调。各个对象之间相互依赖,自动更新。
模板方法模式(Template Pattern)定义某操作的算法骨架后将某些步骤延迟到子类,是子类不改变算法结构而重定义该算法某些特定步骤。
命令模式(Command Pattern)就是命令执行相关操作。
状态模式(State Pattern)内部状态改变导致的行为改变,就想修改了它的类。
职责链模式(Chain of responsibility Pattern )每个对象都队请求进行处理,形成链条式反应。
策略模式
解释器模式(Interpreter Pattern)解释语言中的句子。
中介者模式(Mediator Pattern)通过一个中介对象来封装一系列的对象交互。
访问者模式(Visitor Pattern)不改变各元素的类,重新定义新操作。
策略模式(Strategy Pattern)将算法封装,实现相互替换,可独立于使用它的客户而变化。
备忘录模式(Memento Pattern)就是对当前状态进行保存方便以后恢复。
迭代器模式(Iterator Pattern)通过迭代器定义访问列表元素的接口,迭代器对象负责跟踪当前元素,并且知道哪些元素已经遍历过。
相关文章推荐
- 设计模式六大原则(1):单一职责原则
- 用R语言进行数据探索
- POJ 1477:Box of Bricks
- linux 信号 信号的递送
- mysql实时增量备份 binlog日志备份
- 支持向量机通俗导论(理解SVM的三层境界)
- 人海中寻找,真的遇到你——Spring @ responsebody
- hash 1
- 测试一下使用word写博客
- 分享一个PHP抽奖算法程序代码
- Unable to start the Genymotion virtual device
- 一个操作EXCEL的C#类ExcelUtils
- 理论: 博弈4 :威佐夫博奕(Wythoff Game)
- 面试题总结-阿里神马和通联数据(算法)
- jQuery的扩展
- JavaScript_Date
- GCD入门介绍四---- dispatch_group_async和dispatch_barrier_async
- 搭建LAMP环境
- android学习网址收藏
- 中国各主要大城市经纬度数据