![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
23种设计模式
文章平均质量分 90
23种设计模式
知行合一。。。
这个作者很懒,什么都没留下…
展开
-
IO流--12--Java lO 设计模式
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档。原创 2023-12-02 12:53:52 · 219 阅读 · 0 评论 -
解释器模式---Interpreter
解释器模式定义:构建语法树,定义终结符与非终结符。在 GOF 的书中指出:如果一种特定类型的问题发生的频率足够高,那么可能就值得将该问题的各个实例表述为一个简单语言中的句子。这样就可以构建一个解释器,该解释器通过解释这些句子来解决该问题。给定一个语言,定义它的文法表示,并定义一个解释器,这个解释器使用该标识来解释语言中的句子。解释器模式(Interpreter Pattern)是指给定一门语言,定义它的文法的一种表示(如:加减乘除表达式和正则表达式等),然后再定义一个解释器,该解释器用来解释原创 2021-08-16 19:33:51 · 382 阅读 · 0 评论 -
状态模式---State
状态模式根据状态决定行为定义:GOF《设计模式》中给状态模式下的定义为:允许一个对象在其内部状态改变时改变它的行为。能够让程序根据不同的外部情况来做出不同的响应,最直接的方法就是在程序中将这些 可能发生的外部情况全部考虑到,使用if else 语句来进行代码响应选择。但是这种方法对于复杂一点的状态判断,就会显得杂乱无章,容易产生错误,而且增加一个新的状态将会带来大量的修改。这个时候“根据状态决定行为”的状态模式的引入也许是个不错的主意。状态模式可以有效的替换充满在程序中的 if el原创 2021-08-14 17:43:51 · 231 阅读 · 0 评论 -
模板方法模式---Template Method Pattern
模板方法定义:- 模板方法(Template Method)模式:定义一个操作中的算法的骨架,而将一些步骤延 迟到子类中。使得子类可以不改变一个算法的结构即可重定义该算法的某些特定步骤。- 这里的算法的结构,可以理解为你根据需求设计出来的业务流程。特定的步骤就是指那些可能在 内容上存在变数的环节。可以看出来,模板方法模式也是为了巧妙解决变化对系统带来的影响而设计的。使用模板方法使系统扩展性增强,最小化了变化对系统的影响日常生活中的模板方法:造房时,地基、走线、水管都一样,只有在建原创 2021-08-13 20:46:07 · 150 阅读 · 0 评论 -
备忘录模式---Memento
备忘录模式定义:备忘录模式(Memento Pattern)又称之为快照模式(Snapshop Pattern)或者令牌模式(Token Pattern).是指在不破坏封装的前提下,捕获一个对象的内部状态,并在对象之外保存这个状态,这样我们就可以在需要的时候将该对象恢复到原先保存的状态了,备忘录模式属于行为型模式。备忘录模式----应用实例:打游戏时的存档记录快照Windows 里的 ctri + z。IE 中的后退。数据库的事务管理。组成:https://blog.cs原创 2021-08-11 20:57:06 · 314 阅读 · 0 评论 -
原型模式--- prototype
原型模式https://blog.csdn.net/zwx900102/article/details/105461011https://blog.csdn.net/qq_36970993/article/details/111032678原创 2021-08-08 12:34:02 · 127 阅读 · 0 评论 -
命令模式---Command
命令模式https://blog.csdn.net/zwx900102/article/details/109352746https://blog.csdn.net/qq_36970993/article/details/112159640原创 2021-08-07 18:29:56 · 431 阅读 · 0 评论 -
桥接模式---Bridge
桥接模式定义:https://blog.csdn.net/qq_36970993/article/details/111461423https://blog.csdn.net/zwx900102/article/details/108931673原创 2021-07-30 21:58:23 · 383 阅读 · 0 评论 -
适配器模式---adapter
适配器模式定义:《设计模式》一书中是这样给适配器模式定义的:将一个类的接口转换成客户希望的另外 一个接口。Adapter 模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。生活实例:充电器,美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。笔记本电脑接交流电源时需要一个电源适配器计算机访问照相机的 SD 内存卡时需要一个读卡器等。在 LINUX 上运行 WINDOWS 程序。组成:分类:在《设计模式》一书中将适配器模式分为类适配器原创 2021-07-28 19:44:42 · 333 阅读 · 1 评论 -
建造者模式---Builder
建造者模式定义:GOF 给建造模式的定义为:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.这句话说得很抽象,不好理解,其实它的意思可以理解为:将构造复杂对象的过程和组成对象的部件解耦组成:案例一需求:地形模型对象 Terrain,其中地形由城墙Wall, 堡垒Fort, 地雷Mine组成每一个构建对象,又有x, y, w, h四个方向指标属性产品角色 Terrain:public class Terrain { Wall w; //原创 2021-07-27 21:47:20 · 184 阅读 · 1 评论 -
访问者模式--Visitor
访问者模式定义:《设计模式》一书对于访问者模式给出的定义为:表示一个作用于某对象结构中的各元素的操作。它使你可以在不改变各元素的类的前提下定义作用于这些元素的新操作访问者模式(Vistor Pattern)是一种将数据结构与数据操作分离的的设计模式。访问者模式适用于数据结构相对稳定, 算法又易变化的系统组成结构:案例 1需求:现有一电脑售卖点,电脑是由内存,cpu,和主板三块组成.对于不同来的购买者,内存,cpu,和主板有不同的优惠.ComputerPart 抽象原创 2021-07-22 23:00:15 · 139 阅读 · 1 评论 -
迭代器模式---Iterator
迭代器模式定义:迭代器(Iterator)模式,又叫做游标(Cursor)模式。GOF 给出的定义为:提供一种方法访问一个容器(container)对象中各个元素,而又不需暴露该对象的内部细节。迭代器模式可以为不同容器提供一致的遍历行为,而且不用关心内部元素的组成结构,属于行为型模式。迭代器模式的本质就是抽离集合对象迭代行为到迭代容器中,并提供统一的访问接口。迭代器模式是针对集合对象而生的,对于集合对象而言,肯定会涉及到对集合的添加和删除操作,同时也肯定支持遍历集合元素的操作,我们此时可以把原创 2021-07-18 00:46:44 · 452 阅读 · 1 评论 -
代理模式--Proxy Pattern
代理模式首先回顾:反射–05–动态代理:https://blog.csdn.net/weixin_48052161/article/details/116862418Spring–03–AOP简介:https://blog.csdn.net/weixin_48052161/article/details/108651671动态代理实际上是: 多态+反射的应用多态+反射 ==>代理对象能够动态的去调用被代理类中的同名方法。===https://blog.csdn.net/zwx900原创 2021-07-17 10:10:46 · 382 阅读 · 0 评论 -
享元模式---Flyweight
享元模式定义:享元模式英文称为“Flyweight Pattern”,又译为羽量级模式或者蝇量级模式。享元模式(Flyweight Pattern)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结构的方式。应用:说到享元模式,第一个想到的应该就是池化思想了,String常量池、数据库连接池、缓冲池等等都是享元模式的应用,所以说享元模式是池技术的重要实现方式。String常量池数据库连接池线程池缓冲池原创 2021-07-14 18:46:37 · 166 阅读 · 0 评论 -
组合模式-composite
组合模式-composite原创 2021-07-01 23:27:08 · 153 阅读 · 0 评论 -
观察者模式--Observer
观察者模式https://blog.csdn.net/weixin_48052161/article/details/117397603https://blog.csdn.net/qq_36970993/article/details/112755294https://blog.csdn.net/zwx900102/article/details/105753322原创 2021-06-30 21:16:00 · 470 阅读 · 0 评论 -
责任链模式
责任链模式定义:《设计模式》中给它的定义如下:使多个对象都有机会处理请求,从而避免请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有一个对象处理它为止。注意:责任链模式也叫职责链模式。在责任链模式中,客户只需要将请求发送到责任链上即可,无须关心请求的处理细节和请求的传递过程,请求会自动进行传递。所以责任链将请求的发送者和请求的处理者解耦了。组成:抽象处理者(Handler)角色:定义一个处理请求的接口,包含抽象处理方法和一个后继连接。具体处理原创 2021-06-26 10:16:05 · 474 阅读 · 0 评论 -
装饰器模式--Decorator
装饰器模式定义:装饰者模式(Decorator Pattern)是指在不改变原有对象的基础之上,将一些新的功能动态的添加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能),属于结构型模式。组成:案例 1:需求:Sourceable是抽象构建角色Source类是具体的被装饰类Decorator抽象装饰者SpecificDecorator具体的装饰者抽象构建角色 Sourceablepublic interface Sourceable { void m原创 2021-06-24 22:41:21 · 238 阅读 · 1 评论 -
门面模式(外观模式)
门面模式(facade)定义:门面模式(facade)又称外观模式。GOF在《设计模式》一书中给出如下定义:为子系 统中的一组接口提供一个一致的界面,门面模式提供了一个统一的高层接口,这个接口可以用来访问相同子系统或者不同子系统之中的一群接口。门面模式使得系统更加容易调用,属于结构型模式。结构图:区分中介模式1. 门面模式对外提供一个接口2. 中介模式对内提供一个接口门面模式组成:案例:我们以一个计算机的启动过程为例子系统角色— CPUpublic class原创 2021-06-23 18:44:24 · 528 阅读 · 1 评论 -
工厂方法模式、抽象工厂模式
工厂系列定义:工厂模式主要是为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。分类:工厂模式在《Java 与模式》中分为三类:这三种模式从上到下逐步抽象,并且更具一般性简单工厂模式(Simple Factory)工厂方法模式(Factory Method)抽象工厂模式(Abstract Factory)GOF 在《设计模式》一书中将工厂模式分为两类:工厂方法模式(Factory Method)与抽象工厂模式(Abstract Factory)。将简原创 2021-06-22 14:45:27 · 2857 阅读 · 0 评论 -
策略模式--strategy
策略模式含义:策略模式(Strategy)属于对象行为型设计模式,1.主要是定义一系列的算法,2.把这些算法一个个封装成拥有共同接口的单独的类,并且使它们之间可以互换。策略模式使这些算法在客户端调用它们的时候能够互不影响地变化。这里的算法不要狭义的理解为数据结构中算法,可以理解为不同的业务处理方法。策略模式由三个角色组成:策略模式使用场景:同一个系统中存在不同的逻辑算法,而彼此之间在不同场景中需要实现动态替换,支付方式可以选择:支付宝,微信,银联等,彼此之间就可以相互替换,原创 2021-06-21 17:48:14 · 371 阅读 · 0 评论 -
中介者模式mediator---JDK源码中的体现
中介者模式 mediator中介者模式(Mediator Pattern)又称为调节者模式 或者 调停者模式,是用来降低多个对象和类之间的通信复杂性。意图:用一个中介对象来封装一系列的对象交互,中介者使各对象不需要显式地相互引用,从而使各个对象不需要显示的相互作用,达到松耦合的目的,使得维护更加容易。主要解决:对象与对象之间存在大量的关联关系,这样势必会导致系统的结构变得很复杂,同时若一个对象发生改变,我们也需要跟踪与之相关联的对象,同时做出相应的处理。何时使用:多个类相互耦合原创 2021-05-20 00:54:42 · 336 阅读 · 2 评论 -
单例模式--singleton
单例设计模式概念单例模式可以说是大多数开发人员在实际中使用最多的,常见的Spring默认创建的bean就是单例模式的。单例模式有很多好处,比如可节约系统内存空间,控制资源的使用。其中单例模式最重要的是确保对象只有一个。简单来说,保证一个类在内存中的对象就一个。RunTime就是典型的单例设计我们通过对RunTime类的分析,一窥究竟。源码剖析RunTime.java饿汉式目的控制外界创建对象的个数只能创建1个对象开发步骤:1、 私有化构造方法2、 在类的内部创建好对象3、原创 2020-08-27 23:04:11 · 746 阅读 · 1 评论 -
设计模式---简介
设计模式简介设计模式(Design pattern)代表了最佳的实践,通常被有经验的面向对象的软件开发人员所采用。设计模式是软件开发人员在软件开发过程中面临的一般问题的解决方案。这些解决方案是众多软件开发人员经过相当长的一段时间的试验和错误总结出来的。设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了重用代码、让代码更容易被他人理解、保证代码可靠性。 毫无疑问,设计模式于己于他人于系统都是多赢的,设计模式使代码编制真正工程化,设计模式是软件工程的基石,如同大原创 2020-09-01 15:03:30 · 251 阅读 · 1 评论