责任链模式(chain of responsbility)

职能:将能处理同一类请求的对象连接成一条线,所提交的请求沿链传递

组件:
Handler:抽象处理类,声明处理方法
ConcreteHandler:具体处理类,判断权限,进行处理
实例:java异常机制,Servlet中过滤器的链式处理,Struts2中拦截器的调用
UML:

迭代器模式(iterator(游标模式 cursor))

职能:提供一种可以遍历对象的方式

组件:
Aggregate:实现接口,聚合对象,进行数据的存储
Iterator:实现接口,迭代器,遍历数据,一般定义为内部类,只为一个特定的类提供服务

UML:

中介者模式 Mediator

职能:解耦多个对象之间的交互关系,使用中介者对象统一管理这些交互关系

两种对象:
①同事对象,一个系统中对象之间关系为网状结构,存在大量多对多关系,导致关系十分复杂
②中介者对象,使得同事对象只与中介者对象打交道,变为一对多关系,降低复杂度

组件:
Mediator:抽象中介者
Colleague:抽象同事类
ConcreteMediator:具体中介者,负责和各个同事类交互
ConcreteColleague:持有中介者的对象,和中介者进行交互
实例:MVC中的C(控制器),反射中的invoke()

UML:

命令模式(Command)

职能:将一个请求封装为一个对象,使得不同的请求对客户进行参数化

组件:
Command:抽象命令类
ConcreteCommand:具体命令类
Invoker:调用者/请求者
Receiver:接收者
实例:Structs2中action的调用过程,数据库事物机制的底层实现
UML:

状态模式

职能:用来解决系统中复杂对象的状态转换以及不同状态下行为的封装

组件:
Context:环境类,持有当前状态
State:抽象状态类
ConcreteState:具体状态类,每一个类都封装了一个状态应得行为

实例:线程对象各状态间得转换

UML:

PS:策略模式和状态模式
策略:需在每次调用时,外部进行指定
状态:只需指定初始状态,内部进行自动切换

GOF之行为型模式Ⅰ(重点)相关推荐

  1. GOF之创建型模式(重点)

    单例设计模式 作用:减少系统开销,优化资源共享访问 UML: 分类 1).饿汉式(不可延时加载) 可能造成资源浪费 枚举型:天然的单例设计模式(可防止反射和反序列化) enum EnumUnique ...

  2. GOF之行为型模式Ⅱ(重点)

    解释器模式(Interpreter) 用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计 实例:EL表达式,正则表达式,SQL语法,数学表达式 ps:尽量不要使用解 ...

  3. GoF的23种设计模式之创建型模式的特点和分类

    创建型模式的主要关注点是"怎样创建对象?",它的主要特点是"将对象的创建与使用分离".这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关 ...

  4. GoF设计模式(二)-行为型模式简介

    文章目录 复用决策与扩展决策的行为 由具体子类决定 Template 模板行为 由其他类的对象决定 Strategy 策略(库)行为 State 状态(机)行为 由具体子类决定与其他类的对象决定 Vi ...

  5. 设计模式之六个创建型模式的相关知识,简单易懂。

    一. 简单工厂模式-Simple Factory Pattern 1) 工厂三兄弟之简单工厂模式(一) 工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高 ...

  6. 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...

  7. 【设计模式】设计模式总结 ( 七大设计原则 | 创建型模式 | 结构型模式 | 行为型模式 ) ★★★

    文章目录 一.七大设计原则 1.开闭原则 2.依赖倒置原则 3.单一职责原则 4.接口隔离原则 5.迪米特原则 6.里氏替换原则 7.合成复用原则 二.创建型模式 0.简单工厂模式 ( 不属于 GOF ...

  8. 备战面试日记(3.4) - (设计模式.23种设计模式之行为型模式)

    本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.12 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文 ...

  9. 设计模式_行为型模式学习

    我们知道,创建型设计模式主要解决"对象的创建"问题,结构型设计模式主要解决"类或对象的组合或组装"问题,那行为型设计模式主要解决的就是"类或对象之间的 ...

最新文章

  1. php 的 危 险 参 数
  2. 屏显有啥硬科技可卷?让现在电视厂商这么拼
  3. hdu4901 枚举状态(找集合对S(xor) ==T(and))
  4. 最有影响力的自然语言处理NLP论文
  5. html em vw,CSS3 的视口单位vw、vh实现自适应(带有px,em,rem的简单介绍)
  6. 关于“EXP-00056: ORACLE error 12154 encountered”的解决方法
  7. 每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify
  8. 引用当前网站集下的样式文件
  9. 我要好offer之 二叉树大总结
  10. 张口就问“CCIE”月薪多少
  11. MCMC算法之Metropolis-Hastings(MHs)算法(Matlab代码)
  12. matlab车辆识别车辆检测项目系统源码16例
  13. 白盒测试的逻辑覆盖辨析(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)
  14. 移动端开发旅游预约_套餐列表页面动态展示_套餐详情页面动态展示
  15. 文本数据挖掘一般步骤
  16. 使用ffmpeg来将mp4视频转换成gif格式图片
  17. 深度优先搜索与广度优先搜索
  18. 工作日记:JavaScript生成随机色
  19. MAC macOS更新后git无法使用
  20. Kettle数据从txt到数据库表,表到文件

热门文章

  1. 消息队列面试 - 如何进行消息队列架构设计?
  2. java 多线程同步 通过实现Runnable的示例
  3. 【规范化标准】之 ESLint、Stylelint
  4. Let‘s Encrypt 免费Https证书
  5. C#LeetCode刷题之#56-合并区间(Merge Intervals)
  6. 从头开始开发gis_DevRel工程师一:从头开始建立开发人员关系团队
  7. html 比 htm 的载入速度快,htm和html
  8. 一个Python爬虫工程师学习养成记
  9. python实现秒杀商品的微信自动提醒功能(附代码)
  10. Python3 字典 items() 方法