GOF之行为型模式Ⅰ(重点)
责任链模式(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之行为型模式Ⅰ(重点)相关推荐
- GOF之创建型模式(重点)
单例设计模式 作用:减少系统开销,优化资源共享访问 UML: 分类 1).饿汉式(不可延时加载) 可能造成资源浪费 枚举型:天然的单例设计模式(可防止反射和反序列化) enum EnumUnique ...
- GOF之行为型模式Ⅱ(重点)
解释器模式(Interpreter) 用于描述如何构成一个简单的语言解释器,主要用于使用面向对象语言开发的编译器和解释器设计 实例:EL表达式,正则表达式,SQL语法,数学表达式 ps:尽量不要使用解 ...
- GoF的23种设计模式之创建型模式的特点和分类
创建型模式的主要关注点是"怎样创建对象?",它的主要特点是"将对象的创建与使用分离".这样可以降低系统的耦合度,使用者不需要关注对象的创建细节,对象的创建由相关 ...
- GoF设计模式(二)-行为型模式简介
文章目录 复用决策与扩展决策的行为 由具体子类决定 Template 模板行为 由其他类的对象决定 Strategy 策略(库)行为 State 状态(机)行为 由具体子类决定与其他类的对象决定 Vi ...
- 设计模式之六个创建型模式的相关知识,简单易懂。
一. 简单工厂模式-Simple Factory Pattern 1) 工厂三兄弟之简单工厂模式(一) 工厂模式是最常用的一类创建型设计模式,通常我们所说的工厂模式是指工厂方法模式,它也是使用频率最高 ...
- 备战面试日记(3.2) - (设计模式.23种设计模式之创建型模式)
本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.6 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文章 ...
- 【设计模式】设计模式总结 ( 七大设计原则 | 创建型模式 | 结构型模式 | 行为型模式 ) ★★★
文章目录 一.七大设计原则 1.开闭原则 2.依赖倒置原则 3.单一职责原则 4.接口隔离原则 5.迪米特原则 6.里氏替换原则 7.合成复用原则 二.创建型模式 0.简单工厂模式 ( 不属于 GOF ...
- 备战面试日记(3.4) - (设计模式.23种设计模式之行为型模式)
本人本科毕业,21届毕业生,一年工作经验,简历专业技能如下,现根据简历,并根据所学知识复习准备面试. 记录日期:2022.1.12 大部分知识点只做大致介绍,具体内容根据推荐博文链接进行详细复习. 文 ...
- 设计模式_行为型模式学习
我们知道,创建型设计模式主要解决"对象的创建"问题,结构型设计模式主要解决"类或对象的组合或组装"问题,那行为型设计模式主要解决的就是"类或对象之间的 ...
最新文章
- php 的 危 险 参 数
- 屏显有啥硬科技可卷?让现在电视厂商这么拼
- hdu4901 枚举状态(找集合对S(xor) ==T(and))
- 最有影响力的自然语言处理NLP论文
- html em vw,CSS3 的视口单位vw、vh实现自适应(带有px,em,rem的简单介绍)
- 关于“EXP-00056: ORACLE error 12154 encountered”的解决方法
- 每日Ubuntu小技巧——在Ubuntu中使用音乐软件“声破天”Spotify
- 引用当前网站集下的样式文件
- 我要好offer之 二叉树大总结
- 张口就问“CCIE”月薪多少
- MCMC算法之Metropolis-Hastings(MHs)算法(Matlab代码)
- matlab车辆识别车辆检测项目系统源码16例
- 白盒测试的逻辑覆盖辨析(语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖)
- 移动端开发旅游预约_套餐列表页面动态展示_套餐详情页面动态展示
- 文本数据挖掘一般步骤
- 使用ffmpeg来将mp4视频转换成gif格式图片
- 深度优先搜索与广度优先搜索
- 工作日记:JavaScript生成随机色
- MAC macOS更新后git无法使用
- Kettle数据从txt到数据库表,表到文件
热门文章
- 消息队列面试 - 如何进行消息队列架构设计?
- java 多线程同步 通过实现Runnable的示例
- 【规范化标准】之 ESLint、Stylelint
- Let‘s Encrypt 免费Https证书
- C#LeetCode刷题之#56-合并区间(Merge Intervals)
- 从头开始开发gis_DevRel工程师一:从头开始建立开发人员关系团队
- html 比 htm 的载入速度快,htm和html
- 一个Python爬虫工程师学习养成记
- python实现秒杀商品的微信自动提醒功能(附代码)
- Python3 字典 items() 方法