![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
设计模式复习
の
哆唻咪à
这个作者很懒,什么都没留下…
展开
-
行为型——职责链模式(Responsibility)day23
职责链模式基本介绍职责链模式( Chain of Responsibility Pattern),又叫责任链模式,为请求创建了一个接收者对象的链。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式职责链模式类图➢对原理类图的说明-即(职责链模式的角色及职责)Handler: 抽象的处理者,定义了一个处理请求的接口,同时含义另外Handler原创 2020-08-03 00:22:08 · 157 阅读 · 0 评论 -
行为型——策略模式(Strategy)day22
策略模式基本介绍策略模式(Strategy Patterm) 中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口) ;第三、多用组合/聚合,少用继承(客户通过组合方式使用策略) .策略模式的原理类图说明:从上图可以看到,客户context有成员变量strategy或者其他的策略接口,至于需要使用到哪个策略,我们可以在构造器中指定原创 2020-08-02 01:43:24 · 143 阅读 · 0 评论 -
行为型——状态模式(State)day21
状态模式简介基本介绍1)状态模式(StatePattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换2)当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类状态模式的原理类图➢对原理类图的说明-即(状态模式的角色及职责)Context 类为环境角色,用于维护State实例,这个实例定义当前状态State 是抽象状态角色,定义一个接口封装与Context的一个特点接口相关行为ConcreteStat原创 2020-08-01 00:22:27 · 140 阅读 · 0 评论 -
行为型——解释器模式(Interpreter)day20
文章目录解释器模式基本介绍解释器模式的类图解释器模式来实现四则总结解释器模式基本介绍基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式( Interpreter Pattern) :是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)应用场景-应用可以将一个需要解释执行的语言中的句子表示为一原创 2020-07-31 01:18:25 · 100 阅读 · 0 评论 -
行为型——备忘录模式(Memento)day19
文章目录备忘录模式基本介绍备忘录模式的原理类图代码实现备忘录模式总结备忘录模式基本介绍备忘录模式(Memento Pattern) 在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样以后就可将该对象恢复到原先保存的状态可以这里理解备忘录模式:现实生活中的备忘录是用来记录某些要去做的事情,或者是记录已经达成的共同意见的事情,以防忘记了。而在软件层面,备忘录模式有着相同的含义,备忘录对象主要用来记录一个对 象的某;种状态,或者某些数据,当要做回退时,可以从备忘录对象里获取原原创 2020-07-30 14:54:27 · 122 阅读 · 0 评论 -
行为型——观察者模式(observer)day18
天气预报项目需求,具体要求如下:气象站可以将每天测量到的温度,湿度,气压等等以公告的形式发布出去(比如发布到自己的网站或第三方)。需要设计开放型 API,便于其他第三方也能接入气象站获取数据。提供温度、气压和湿度的接口测量数据更新时,要能实时的通知给第三方观察者模式原理观察者模式类似订牛奶业务奶站/气象局: Subject用户/第三方网站: Observer➢Subject: 登记注册、移除和通知registerObserver 注册removeObserver 移除not原创 2020-07-30 01:50:36 · 97 阅读 · 0 评论 -
行为型——迭代器模式(Iterator)day17
迭代器模式基本介绍迭代器模式(Iterator Pattern) 是常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式, 提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部的结构。迭代器模式原理类图➢对原理类图的说明-即(迭代器模式的角色及职责)It原创 2020-07-29 01:36:15 · 101 阅读 · 0 评论 -
行为型——访问者模式(Visitor)day16
在结构不变的情况下动态改变对于内部元素的动作访问者模式基本介绍1)访问者模式(VisitorPattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。2)主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题3)访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口4)访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这些操作"污染"这些对象的类,可以选用原创 2020-07-29 00:23:51 · 103 阅读 · 0 评论 -
行为型——命令模式(Command) day15
目录命令模式基本介绍命令模式的原理类图实例——智能生活项目需求命令模式的总结命令模式基本介绍命令模式(Command Pattern) :在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计命名模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命名模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的请求(即命名),同原创 2020-07-21 17:16:35 · 149 阅读 · 0 评论 -
行为型——模板方法模式(Template)day14
模板方法模式基本介绍模板方法模式 (Template Method Pattern),又叫模板模式(Template Pattern), 指 在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说, 模板方法模式定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤这种类型的设计模式属于行为型模式。模板方法模式原理类图➢对原理类图的说明-即(模板方法模式的角色及职责)原创 2020-07-20 01:01:23 · 106 阅读 · 0 评论 -
结构型——代理模式(Proxy)day13
基本介绍1)代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作即扩展目标对象的功能。2)被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象3)代理模式有不同的形式,主要有三种静态代理、动态代理(JDK代理、接口代理)和Cglib 代理(可以在内存动态的创建对象,而不需要实现接口,他是属 于动态代理的范畴)。4)代理模式示意图静态代理静态代理介绍静态代理在使用时,需要定义接口或者父类原创 2020-07-16 19:36:56 · 118 阅读 · 0 评论 -
结构型——享元模式(Flywight)day12
基本介绍享元模式(Flywight Pattem)也叫 蝇量模式:运用共享技术有效地支持大量细粒度的对象常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建一个享元模式能够解决重复对象的内存浪费的问题, 当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从缓冲池里拿。这样可以降低系统内存,同时提高效率享元模式经典的应用场最就是池技术了,String 常量池、数据库连接池、缓冲原创 2020-07-15 01:50:40 · 114 阅读 · 0 评论 -
结构型——外观模式(Facade)&&行为型——中介者模式(Mediator)day11
结构型——外观模式(Facade)外观模式基本介绍外观模式(Facade),外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节一个简单的例子理解:去一些政府部门办事,会跑很多不同的部门,可能去了部门A,部门A又让你去部门B……这样就很麻烦如果使用门面模式,用户只需要访问门面,由门面模式去协调内部的关系。外观模式原创 2020-07-12 21:22:17 · 331 阅读 · 0 评论 -
结构型——组合模式(Composite)day10
组合模式针对树形结构的模式例如传统方案实现将学院看做是学校的子类, 系是学院的子类,这样实际上是站在组织大小来进行分层次的实际上我们的要求是:在一个页面中展示出学校的院系组成,一个学校有多个学院,一个学院有多个系,因此这种方案,不能很好实现的管理的操作,比如对学院、系的添加,删除,遍历等解决方案: 把学校、院、系都看做是组织结构,他们之间没有继承的关系,而是一个树形结构,可以更好的实现管理操作。=> 组合模式组合模式基本介绍组合模式(Composite Patterm),又叫部分原创 2020-07-10 01:25:00 · 141 阅读 · 0 评论 -
结构型——装饰器(Decorator)day09
定义装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)案例咖啡种类/单品咖啡: Espresso( 意大利浓咖啡)、ShortBlack、 LongBlack(美 式咖啡)、Decaf(无因咖啡)调料: Milk、 Soy(豆浆)、 Chocolate要求在扩展新的咖啡种类时,具有良好的扩展性、改动方便、维护方便使用00的来计算不同种类咖啡的费用:客户可以点单品咖啡,也可以单品咖啡+调料组合。方法一:方法二:装饰器客户点原创 2020-07-09 02:07:18 · 88 阅读 · 0 评论 -
结构型——桥接模式(Bridge)day08
桥接模式基本介绍桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。是一种结构型设计模式Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展桥接模式原理图说明:Client类:桥接模式的调用者抽象类(Abstraction) :维护了Implementor/原创 2020-07-08 00:40:08 · 154 阅读 · 0 评论 -
结构型——适配器模式(Adapter)day07
基本介绍适配器模式(Adapter Pattemn)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。 其别名为包装器(Wrapper)适配器模式属于结构型模式主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理适配器模式:将一个类的接口转换成另一种接口.让原本接口不兼容的类可以兼容从用户的角度看不到被适配者,是解耦的用户调用适配器转化出来的目标接口方法,适配器再调用被适配者的相关接口方法用户收到反馈结果原创 2020-07-07 14:32:56 · 174 阅读 · 0 评论 -
创建型——建造者(Builder)day06
分离复杂对象的构建和表示同样的构建过程可以创建不同的表示建造者模式和模板方法模式非常像建造者模式强调构造对象模板方法模式强调方法执行基本介绍1、建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。2、建造者模式是一步一步创建一个复 杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者的四个角色1、.原创 2020-07-06 00:09:20 · 2170 阅读 · 0 评论 -
创建型——原型模式(Prototype)day05
原型模式基本介绍原型模式Prototype也称为克隆模式原型模式(Prototype模式)是指:用原型实例指定创建对象的种类,并且通过拷贝这些原型,创建新的对象原型模式是一种创建型设计模式,允许一个对象再创建另外一个可定制的对象,无需知道如何创建的细节工作原理是:通过将一个原型对象传给那个要发动创建的对象,这个要发动创建的对象通过请求原型对象拷贝它们自己来实施创建,即对象.clone()实现原型模式需要实现标记型接口Cloneable一般会重写clone()方法如果只是重写clone()方法原创 2020-07-04 01:56:10 · 92 阅读 · 0 评论 -
创建型——工厂系列(Factory)day04
任何可以产生对象的方法或类,都可以称为工厂单例也是一种工厂为什么有了new以后,还要有工厂?1、灵活控制生产过程2、权限、修饰、日志……接口模式package cn.xhl.interfacemodel;public interface IFruit { public void plant(); public void harvest(); public void grow();}package cn.xhl.interfacemodel;public class ..原创 2020-07-02 12:28:27 · 2380 阅读 · 0 评论 -
创建型——单例模式(Singleton)day03
单例设计模式单例设计模式介绍单例模式就是采取一定的方法保证在整个的软件体系中,对摸个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法(静态方法)比如在Hibemate的SessionFactory,它充当数据存储源的代理并负责创建Session对象,SessionFactory并不是轻量级的,一般情况下,一个项目通常需要一个SessionFactory就够,这就使用到单例模式。单例设计模式的八种方式1. 饿汉式(静态常量)2. 饿汉式(静态代码块)3. 懒汉式(线程不安全)4.原创 2020-06-26 22:10:14 · 116 阅读 · 0 评论 -
设计模式类型day02
设计模式类型设计模式分为三种类型,共23种:创建型:单例、工厂、抽象工厂、原型、建造者(5)结构型:适配器、桥接、装饰器、组合、外观、享元、代理(7)行为型:模板方法、命令、访问者、迭代器、观察者、中介者、备忘录、解释器、状态、策略、责任链(11)...原创 2020-06-26 00:12:04 · 78 阅读 · 0 评论 -
UML六种关系day02
UML图UML图分类:用例图静态结构图:类图、对象图、包图、组件图、部署图动态行为图:交互图(时序图和协作图)、状态图、活动图UML类图用于描述系统中的类(对象)本身的组成和类(对象)之间的各种静态关系。类之间的关系:依赖、关联、继承(泛化)、实现、组合、聚合。依赖关系(Dependence)只要是在类中用到了对方,那么他们之间就存在依赖关系。public class PersonServiceBean{ private PersonDao personDao;//类 publi原创 2020-06-26 00:04:15 · 121 阅读 · 0 评论 -
设计模式七大原则day01
设计模式七大原则单一职责原则:单一职责原则(Single Responsibility Principle, SRP)的定义是:指一个类或者模块应该有且只有一个改变的原因。如果一个类承担的职责过多,就等于把这些职责耦合在一起了。一个职责的变化可能会削弱或者抑制这个类完成其他职责的能力。这种耦合会导致脆弱的设计,当发生变化时,设计会遭受到意想不到的破坏。而如果想要避免这种现象的发生,就要尽可能的遵守单一职责原则。此原则的核心就是解耦和增强内聚性。含义:对于一个类,只有一个引起该类变化的原因;该类的职责是原创 2020-06-25 00:41:28 · 219 阅读 · 0 评论