依据1:目的准则,模式用来完成什么工作。 

根据2:范围准则,用于类还是对象。

创建型 (对象创建有关)

  1. Factory Method  (类)

    1. 定义一个用于创建对象的接口,让子类决定将哪一个类实例化。
  2. Abstract Factory (对象)
    1. 提供一个创建一系列相关或相互依赖对象的接口,而无须指定他们具体类。
  3. Builder (对象)
    1. 将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。
  4. Prototype (对象)
    1. 用原型实例指定创建对象的种类,并通过拷贝这个原型来创建新的对象。
  5. Singleton (对象)
    1. 保证一个类仅有一个实例,并提供一个访问它的全局访问点。

结构型 (处理类或对象组合有关)

  1. Adapter (类 & 对象)

    • 将一个类的接口转换成客户希望的另外一个接口。
  2. Bridge (对象)
    1. 将抽象部分与它实现部分分离,使它们都可以独立变化
  3. Composite (对象)
    1. 将对象组合成树形结构已表示【部分-整体】的层次结构。使得对单个对象和复合对象的使用具有一致性。
  4. Decorator (对象)
    1. 动态地给一个对象添加一些额外的职责。
  5. Facade (对象)
    1. 为子系统中一组接口提供一个一致的界面,定义了高层的接口,使得这一子系统更加容易使用。
  6. Flyweight (对象)
    1. 运用共享技术有效地支持大量细粒度的对象。
  7. Proxy (对象)
    1. 为其他对象提供一个代理以控制对这个对象的访问。

行为型 (对类或对象怎样交互和怎样分配职责进行描述)

  1. Interpreter (类)

    1. 给定一个语言,定义它的文法的一种表示,并定义一个解释器,该解析器使用该表示来解析语言中的句子。
  2. Template Method (类)
    1. 定义一个操作中的算法骨架,而将一些步骤延迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。
  3. Chain of Responsibility (对象)
    1. 为解除请求的发送者和接受者之间的耦合,而使多个对象都有机会处理这个请求。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它。
  4. Command (对象)
    1. 将一个请求封装为一个对象,从而使你可用不同的的请求对客户进行参数化;对请求排队或记录请求日志,支持可取消操作。
  5. Iterator (对象)
    1. 提供一种方法顺序访问一个聚合对象中各个元素,而又不需要暴露该对象的内部表示。
  6. Mediator (对象):
    1. 用一个中介对象来封装一系列的对象交互。中介者使各对象不需要显式得相互引用,独立地改变它们之间的交互。
  7. Memento (对象)
    1. 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。以后就可将该对象恢复到保存的状态。
  8. Observer (对象)
    1. 定义对象间的一种一对多的依赖关系,以便当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并自行刷新。
  9. State (对象)
    1. 允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它所属的类。
  10. Strategy (对象)
    1. 定义一系列算法,把他们一个个封装起来,并且使它们可相互替换。使得算法的变化可独立使用它的用户。
  11. Visitor (对象)
    1. 一个作用于某对象结构中的各元素的操作。可以在不改变各元素的类的前提下定义作用于这些元素的新操作。

【设计模式】分类和定义相关推荐

  1. NLTK频率分类中定义的函数

    NLTK频率分类中定义的函数 例子 描述 fdist=FreqDist(samples) 创建包含给定样本的频率分布 fdist.inc(sample) 增加样本 fdist['monstrous'] ...

  2. java嵌套类型 无法隐藏外层类型_java内部类深入详解 内部类的分类 特点 定义方式 使用...

    java内部类 内部类的分类 特点  定义方式 使用   外部类调用内部类 多层嵌套内部类  内部类访问外部类属性  接口中的内部类  内部类的继承  内部类的覆盖  局部内部类 成员内部类 静态内部 ...

  3. Paper:自动驾驶领域SAE标准之《道路机动车辆驾驶自动化系统相关术语的分类和定义》官方英文原文翻译与解读(二)

    Paper:自动驾驶领域SAE标准之<道路机动车辆驾驶自动化系统相关术语的分类和定义>官方英文原文翻译与解读(二) 目录 自动驾驶领域SAE标准之<道路机动车辆驾驶自动化系统相关术语 ...

  4. Paper:自动驾驶领域SAE标准之《道路机动车辆驾驶自动化系统相关术语的分类和定义》官方英文原文翻译与解读(一)

    Paper:自动驾驶领域L级别SAE标准<道路机动车辆驾驶自动化系统相关术语的分类和定义&Taxonomy and Definitions for Terms Related to Dr ...

  5. WEB漏洞分类与定义指南

    WEB漏洞分类与定义指南 web vulnerability classification and definition guideline 前 言 本标准按照 本标准按照 GB/T1.1GB/T1. ...

  6. 【信贷业务】信贷五级分类的定义

    贷款五级分类的定义: 正常贷款核心定义:债务人能够履行合同,没有足够理由怀疑债务人不能按时足额偿还债务. 关注贷款核心定义:尽管债务人目前有能力偿还债务,但存在一些可能对偿还产生不利影响的因素. 次级 ...

  7. 设计模式 分类和原则

    为什么80%的码农都做不了架构师?>>>    设计模式的分类 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式.抽象工厂模式.单例模式.建造者模式.原型模式. 结构型 ...

  8. php 数组元素分类,数组分类、定义及遍历

    $codes = 'html> 数组遍历 h1{margin: 0px;color: red;background: #ccc;} h3{margin: 0px;color: red;backg ...

  9. 路由器:分类、定义及标准

    自TCP/IP协议簇于七十年代中期推出以来,现已发展成为网络层通信协议的事实标准,基于TCP/IP的互联网络也成为了最大.最重要的网络. 路由器作为IP网络的核心设备已经得到空前广泛的应用. 路由器作 ...

最新文章

  1. Android 短信模块分析(四) MMS之短信的发送与接收
  2. 4.2 深层网络中的前向传播-深度学习-Stanford吴恩达教授
  3. Spring系列(十一):@Profile 注解用法介绍
  4. CodeForces 139C Literature Lesson(模拟)
  5. Netty工作笔记0045---Netty模型梳理
  6. MySQL 四种链接
  7. Windows下安装Elasticsearch
  8. 【Python学习日记】迭代器
  9. 基于SSM的猫头鹰在线影院订票网站
  10. Oracle技术之使用dd复制asm中文件
  11. fh 幅频特性曲线怎么画fl_开环幅相频率特性曲线和对数相频特性曲线的完整画法...
  12. 编译原理实验1——词法分析器设计
  13. 软件测试项目案例哪里找?【银行/教育/商城/金融/等等....】
  14. 我的团长我的团第四十集
  15. 虚拟机vmware centos7 扩展磁盘空间
  16. 台式计算机突然连接不到网络,电脑突然网络感叹号导致不能上网的解决方法
  17. 3.2.3 Quantization Techniques(HDR量化)(Advanced High Dynamic Range Imaging)Schlick TMO
  18. 自媒体人想要写好实时热点文章,一定要掌握好这三点
  19. photoshop第五章:图像的调整
  20. swagger swagger-codegen 使用

热门文章

  1. python PyQt5中文教程☞【第八节】PyQt5控件(II)
  2. tensorflow tf.encode_base64()(将字符串编码为网络安全的base64格式)
  3. Haproxy + Pacemaker 实现高可用负载均衡(一)
  4. SpringBoot @Valid各种注解使用说明
  5. Java多线程(二):Callable和FutureTask结合使用获取返回值
  6. maven的pom.xml中profiles的作用
  7. oracle备份及恢复
  8. 在java中将数据信息写入文本中(2)
  9. Mybatis框架中是如何获取到SQL语句的,让我们一起来模拟一下吧
  10. iccv2020论文汇总_ICCV2019 最佳论文出炉,附1987~2019历届ICCV最佳论文汇总( 提供下载)...