1、Abstract Factory:提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

2、Adapter:将一个类的接口转换成客户希望的另一个接口。Adapter模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。

3、Bridge:将抽象部分与它的实现部分分离,使他们都可以独立的变化。

4、Builder:将一个复杂对象的构建与它的实现部分分离,使他们都可以独立的变化。

5、Chain of Responsibility:为解除请求的发送者和接受者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。

6、Command:将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可取消的操作。

7、Composite:将对象组合成树形结构以表示“部分-整体”的层次结构。Composite使得客户对单个对象和复合对象的使用具有一致性。

8、Decorator:动态的给一个对象添加一些额外的职责。就扩展功能而言,Decorator模式比生成子类方式更为灵活。

9、Facade:为子系统中的一组接口提供一个一致的界面,Facade模式定义了一个高层接口,这个接口使得这一子系统更加容易使用。

10、Factory Method:定义一个用于创建对象的接口,让子类决定将哪一个类实例化。Factory Method使一个类的实例化延迟到其子类。

11、Flyweight:运用共享技术有效地支持大量细粒度的对象。

12、Interpreter:给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中的句子。

13、Iterator:提供一种方法顺序访问一个聚合对象中的各个元素,而又不暴露该对象的内部表示。

14、Mediator:用一个中介对象来封装一系列的对象交互。终结者使各个对象不需要显示的相互引用,从而使其耦合松散,而且可以独立的改变他们之间的交互。

15、Memento:在不破坏封装的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到保存的状态。

16、Observer:定义对象间的一种一度多的依赖关系,一边当一个对象的状态发生改变时,所有依赖与他的对象都得到通知并自动刷新。

17、Prototype:用原型实例指定创建对象的种类,并且通过拷贝这个原型来创建新的对象。

18、Proxy:为其他对象提供一个代理以控制对这个对象的访问。

19、Singleton:保证一个类仅有一个实例,并提供一个访问它的全局访问点。

20、State:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。

21、Strategy:定义一系列的算法,把他们一个个封装起来,并且使他们可相互替换。本模式使得算法的变化可独立于使用它的客户。

22、Template Method:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中。Template Method使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。

23、Visitor:表示一个作用于某对象结构中的各元素的操作。他使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作

创建型模式,解决直接使用类而不是接口的问题。

结构型模式,解决如何组织对象以获得更大的结构。

行为型模式,解决对象间职责的分配和消息的传递问题。

设计模式功能概述(Design Patterns)的更多相关文章

  1. 23 种设计模式 APP & 23 Design Patterns App

    23 种设计模式 APP & 23 Design Patterns App https://github.com/xgqfrms/23-design-patterns-app https:// ...

  2. 设计模式教程(Design Patterns Tutorial)笔记之一 创建型模式(Creational Patterns)

    目录 · 概述 · Factory · What is the Factory Design Pattern? · Sample Code · Abstract Factory · What is t ...

  3. 设计模式教程(Design Patterns Tutorial)笔记之三 行为型模式(Behavioral Patterns)

    目录 · Strategy · When to use the Strategy Design Pattern? · Sample Code · Observer · When to use the  ...

  4. 设计模式教程(Design Patterns Tutorial)笔记之二 结构型模式(Structural Patterns)

    目录 · Decorator · What is the Decorator Design Pattern? · Sample Code · Adapter · What is the Adapter ...

  5. 【Design Patterns】(1)概述

    设计模式 -- 概述 2019-07-17  22:43:32  by冲冲 1. 简介 ① 设计模式 是软件开发人员在软件开发过程中,针对一般问题的最佳解决方案,该方案能够被程序员反复应用于解决类似问 ...

  6. 设计模式(Design Patterns)

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  7. Design Patterns in Smalltalk MVC 在Smalltalk的MVC设计模式

    Design Patterns in Smalltalk    MVC在Smalltalk的MVC设计模式 The Model/View/Controller (MVC) triad ofclasse ...

  8. 设计模式(Design Patterns)Java版

    设计模式(Design Patterns) ——可复用面向对象软件的基础 设计模式(Design pattern)是一套被反复使用.多数人知晓的.经过分类编目的.代码设计经验的总结.使用设计模式是为了 ...

  9. 云设计模式-Design patterns for microservices

    云设计模式 https://azure.microsoft.com/zh-cn/blog/design-patterns-for-microservices/ https://www.cnblogs. ...

随机推荐

  1. 修改mysql root密码的方法

    方法1: 用SET PASSWORD命令 首先登录MySQL. 格式:mysql> set password for 用户名@localhost = password('新密码'); 例子:my ...

  2. struts2官方 中文教程 系列六:表单验证

    先贴个本帖的地址,以免被爬:struts2教程 官方系列六:表单验证  即 http://www.cnblogs.com/linghaoxinpian/p/6906720.html 下载本章节代码 介 ...

  3. 使用maven插件生成grpc所需要的Java代码

    1.首先需要编写自己需要的.proto文件,本文重点不在这里,.proto可以参考grpc官方例子 https://grpc.io/docs/quickstart/java.html 2.创建自己的J ...

  4. c++返回引用

    #include <iostream> #include <ctime> using namespace std; double vals[] = {10.1, 12.6, 3 ...

  5. 【python模块】——logging

    python学习——logging模块

  6. fiddler之弱网测试

    今天就说一下如何使用fiddler做弱网测试 1.首先要把手机的代理打开,这就不多讲了哈,不懂得话请点传送门:https://www.cnblogs.com/fuxinxin/p/9146693.ht ...

  7. cocos2d-x 动作类

    动作类是Action IntervalAction是间隔动作,InstantAction是瞬时动作. 动作的管理是要由节点负责的,任何的节点都可以管理节点,如精灵.菜单.层.甚至场景都可以管理动作.节 ...

  8. 01-Mysql数据库----前戏

    MySql的前戏 在学习Mysql之前,我们先来想一下一开始做的登录注册案例,当时我们把用户的信息保存到一个文件中: #用户名 |密码root|123321 alex|123123 上面文件内容的规则 ...

  9. Sersync实时备份服务部署实践

  10. Week1 Team Homework #1 from Z.XML-总结学长经验教训

    谭传奇学长: 我们的弯路可能是,一开始没有从最基础的部分开始迭代开发,一开始就想的太远了一些,每一步开的有点太大了,所以可能有些东西最后就连不上,也没有能够按时完成.如果可以先做出一个能用的版本,然后 ...