23种设计模式小结
2016-03-22 21:44
211 查看
创建模式
简单工厂模式:由工厂决定生产哪一种产品,选择了什么工厂就生产什么样的产品【不算一种设计模式】
工厂方法模式:定义工厂接口。由详细工厂决定生产什么样的产品
抽象工厂模式:提供接口,创建一系列相关或独立的对象,而不指定这些对象的详细类
单例模式:在整个系统中仅仅存在对象的一个实例
建造者模式:使用相同的建造过程创建不同的实例
原型模式:通过克隆/复制一个已经存在的实例创建新的对象
结构模式
适配器模式:将具有A接口外观的对象转换成具有B接口外观的对象,但仍由A类型对象运行底层操作
桥接模式:将行为和动作进行分离。使之能够独立进行变化
组合模式:将一组对象当作一个对象看待,运行组合的方法,该组对象的方法都会被调用
装饰者模式:动态的给对象加入功能
外观模式:将一组行为进行包装,简化外部调用
享元模式:将公共使用的东西抽取出来共同使用
代理模式:一个类作为其它类的接口,供客户调用
行为模式
责任链模式:将职责进行封装,串联成链式并定义其流转行为,同一时候能够进行动态扩充职责
命令模式:将行为封装成命令使其具有统一外观,方便统一调用运行
解释器模式:使用抽象表示取代具体描写叙述
迭代器模式:封装不同集合的遍历方法。使其具有统一的外观
中介模式:使用中介对象进行各对象间的交互,避免对象内嵌交互。减少耦合
备忘录模式:类似闭包功能,在不破坏对象封装的情况下,保存对象的细节。以便于恢复到该状态
观察者模式:一个对象的变化会影响到其它对象
状态模式:依据状态的转移而选择不同的状态类进行处理对应的业务逻辑
策略模式:定义算法族。分别封装起来,让他们直接能够相互替换,使算法的变化独立于使用算法的客户
模板方法模式:类似工厂方法模式,将同一类对象中同样操作进行抽取,不同的操作进行抽象,由详细类进行实现
訪问者模式:在不改变元素的类的前提下定义作用于这些元素的新操作
简单工厂模式:由工厂决定生产哪一种产品,选择了什么工厂就生产什么样的产品【不算一种设计模式】
工厂方法模式:定义工厂接口。由详细工厂决定生产什么样的产品
抽象工厂模式:提供接口,创建一系列相关或独立的对象,而不指定这些对象的详细类
单例模式:在整个系统中仅仅存在对象的一个实例
建造者模式:使用相同的建造过程创建不同的实例
原型模式:通过克隆/复制一个已经存在的实例创建新的对象
结构模式
适配器模式:将具有A接口外观的对象转换成具有B接口外观的对象,但仍由A类型对象运行底层操作
桥接模式:将行为和动作进行分离。使之能够独立进行变化
组合模式:将一组对象当作一个对象看待,运行组合的方法,该组对象的方法都会被调用
装饰者模式:动态的给对象加入功能
外观模式:将一组行为进行包装,简化外部调用
享元模式:将公共使用的东西抽取出来共同使用
代理模式:一个类作为其它类的接口,供客户调用
行为模式
责任链模式:将职责进行封装,串联成链式并定义其流转行为,同一时候能够进行动态扩充职责
命令模式:将行为封装成命令使其具有统一外观,方便统一调用运行
解释器模式:使用抽象表示取代具体描写叙述
迭代器模式:封装不同集合的遍历方法。使其具有统一的外观
中介模式:使用中介对象进行各对象间的交互,避免对象内嵌交互。减少耦合
备忘录模式:类似闭包功能,在不破坏对象封装的情况下,保存对象的细节。以便于恢复到该状态
观察者模式:一个对象的变化会影响到其它对象
状态模式:依据状态的转移而选择不同的状态类进行处理对应的业务逻辑
策略模式:定义算法族。分别封装起来,让他们直接能够相互替换,使算法的变化独立于使用算法的客户
模板方法模式:类似工厂方法模式,将同一类对象中同样操作进行抽取,不同的操作进行抽象,由详细类进行实现
訪问者模式:在不改变元素的类的前提下定义作用于这些元素的新操作
相关文章推荐
- 重构第11天 使用策略代替Switch(Switch to Strategy)
- PAT (Advanced Level) Practise 1071 Speech Patterns (25)
- 【POJ3624】Charm Bracelet(01背包)
- 51 nod 1103 N的倍数(鸽巢原理)
- VS2010上编译opencv3.1.0的32位静态链接库(动态链接库)
- GWAS with plink
- 第5课 基础知识
- leetcode213. [DP]House Robber II
- RHCE7 搭建SAMBA服务实现目录网络共享
- 数据结构 串匹配 好难懂
- codevs 1966 乘法游戏
- MySQL的create table as 与 like区别(转)
- XSS攻击原理及防御措施
- oracle存储过程
- 重建二叉树
- Test for Job(poj3249)
- 安装了Visual Studio 2008自带的SQL Server 2005后,设置sa登录名
- 【mysql】数据库定时备份、数据恢复
- Google 网上论坛(Google Online Forums)
- json-c有时我们会忽略的问题