【大话设计模式】——行为型模式总结(罗列篇)

拖拖拉拉的终于完成了行为型模式的总结,行为型模式一共十一个那么多,一直在想办法梳理知识,想要让自己印象深刻,但是又不知道了从哪里下手。回过头来看米语录,解决了我这个问题。


对待自己的知识要让他经历下面几个过程,罗列,比较,抽象。不要只要简单地把知识罗列出来。
我知道自己为什么慢了,因为我连罗列都不肯花时间去做,怎么会有后面的提高呢?现在不肯花时间,以后就会花双倍的时间去弥补,出来混总是要还的啊!

以下就是我对行为型模式的一个简单总结。

一、行为型模式?

行为型模式表示的是对象间职责的分配,不仅描述的是类和对象的关系,还描述了对象之间的通信模式。

二、行为型模式都包含什么模式?

1、罗列之后的成果图(定义一个一对多的算法状态)

2、每个模式的概念

(一)算法相关

(1)策略(Strategy)

它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户。

(2)模板方法(TemplateMethod)

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

(二)一对多

(3)观察者(Observer)

定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。

(6)迭代器(Iterator)

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

(9)职责链(Chain of Responsibility)

使多个对象都有机会处理请求,从而避免请求的发送者和接受者之间的耦合关系。将这个对象连成一条链,并沿着这条链传递该请求,知道有一个对象处理它为止。

(10)中介者(Mediator)

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

(三)对象状态

(4)状态(State)

当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。

(5)备忘录(Memento)

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

(7)命令(Command)

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

(四)定义

(8)解释器(Interpreter)

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

(11)访问者(Visitor)

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

三、总结

通过罗列每个模式的概念,找出了相似的地方,将相似的放在一起学习,理解,比较后印象会更加深刻。其实,我们遇到的问题在米老师博客或者米语录中都能找到解决方案,只是我们没有去做而已,说再多也没有,执行力最重要。

下篇博客将针对这四类做一下比较总结。

时间: 2024-08-25 02:12:18

【大话设计模式】——行为型模式总结(罗列篇)的相关文章

<二>读<<大话设计模式>>之策略模式

又和大家见面了,能够坚持写出第二篇文章真不错,好好加油. <<大话设计模式>>讲解策略模式是以商场收银软件程序开头的,那么问题来了,哪家商场收银软件强,开玩笑了.读过上篇文章<<简单工厂模式>>的知道,它有两个缺点:1.客户端依赖两个类,耦合性高:2.如果算法过多则需要写很多类.解决上面问题的就是策略模式了. 策略模式:它定义了算法家族,分别封装起来,让它们之间可以互相替换,此模式让算法的变化,不会影响到使用算法的客户. 商场收银软件:单价*打折算法=售价.

大话设计の创建型模式

在前面设计模式汇总中我们从宏观整理了设计模式中整体分类,下面针对其中的创建型模式单独讨论内部的分类原则和哥哥设计创建型模式的核心思想.请看下图: 首先区分工厂三姐妹我们可以设想一个情景,制造车的工厂,三者是逐级在顶层进行抽象的关系大概的类图如下图: 简单工厂是只有一个工作车间一整条生产线 工厂方法是根据需要自动建造多个车间多条生产线 抽象工厂是由不同系列不同牌子的工厂 另外的两种设计模式比较容易,创建式模式是稳定住对象内部建构过程或者顺序,建造的表示可以是个性化的,从而将建造于表示分离.原型模式

JDK 源码 阅读 - 2 - 设计模式 - 创建型模式

A.创建型模式 抽象工厂(Abstract Factory) javax.xml.parsers.DocumentBuilderFactory DocumentBuilderFactory通过FactoryFinder实例化具体的Factory. 使用例子: DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance(); DocumentBuilder docBuilder = docBuilder

【大话设计模式】—— 模板方法模式

一.概念 上一篇文章刚刚讲了[大话设计模式]-- 原型模式,原型模式主要是通过Clone()方法,创建新的对象,免去了初始化的过程.模板方法模式也特别会"偷工减料",把不变的行为搬移到超类,去除子类中的重复代码,将代码的复用优势展现的淋漓尽致.它为我们提供了特定的结构和样式,我们只需关心填充数据内容就好,省心啊- 下面让我们来看一下它的准确定义: 模板方法(TemplateMethod)模式:定义一个操作中的算法的骨架,而将一些步骤延迟到子类中.模板方法使得子类可以不改变一个算法的结构

大话设计模式_备忘录模式(Java代码)

备忘录模式:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态.这样以后就可将该对象恢复到原先保存的状态. 简单描述:一个Memento类,代表Originator中要备份的属性.Originator负责生成备份和还原备份,CareTaker负责存储备份 大话设计模式中的截图: 例子代码: Memento类: 1 package com.longsheng.memento; 2 3 public class Memento { 4 5 private String sta

【大话设计模式】——代理模式

对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念.Hibernate 的继承映射可以理解持久化类之间的继承关系.例如:人和学生之间的关系.学生继承了人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到. Hibernate支持三种继承映射策略: 使用 subclass 进行映射:将域模型中的每一个实体对象映射到一个独立的表中,也就是说不用在关系数据模型中考虑域模型中的继承关系和多态. 使用 joined-subclass 进行映射: 对于继承关系中的子类使用同一个表

设计模式——创建型模式

简单的说我们可以把23种设计模式可以归为三大类,分别是创建型模式.结构型模式和行为型模式. 今天,首先看一下创建型模式.创建型设计模式包括5种:单例模式(Singleton).工厂方法模式(Factory Method).抽象工厂模式(Abstract Factory).建造者模式(Builder).原型模式(Prototype).  1.单例模式(Singleton)        1)简介 保证一个类仅有一个实例,并提供一个访问它的全局访问点. 单例模式是一种常用的软件设计模式.在它的核心结

设计模式06-原型模式

1. 概念 用原型的实例指定创建对象的种类,并且通过拷贝这些原型对象来创建新的对象   在java中直接实现Cloneable接口即可 2. 案例 /********************************************************************** * <pre> * FILE : PrototypeDemo.java * CLASS : PrototypeDemo * * AUTHOR : Liaokailin * * FUNCTION : TODO

大话设计模式_解释器模式(Java代码)

解释器模式:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 简单描述:一个AbstractExpression类,多个子类,存在一个Interpret方法,转义Context对象的信息.客户端根据信息实例化不同的Expression类,并调用其转义方法(这个过程可以使用简单工厂+反射进行) 大话设计模式中的截图: 代码例子: 假设HTML代码解释器: (1)第一类标签<HTML>(开始)/<HEAD>(头信息)/<BODY&g

大话设计模式_原型模式(Java代码)

原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象 简单描述:即通过实现接口Cloneable重写方法clone(),使得创建新的拷贝对象不需要一个成员一个成员的重新复制,而且可以提高创建对象的效率 Java中要想实现拷贝使用clone()方法,类必须实现Cloneable接口,并且重写Object类中的clone()方法,调用父类的clone()方法即可实现浅复制 代码如下: WorkExperience类: 1 package com.longsheng.prototy