设计模式
文章平均质量分 94
xushiyu1996818
这个作者很懒,什么都没留下…
展开
-
源码中用到的设计模式
创作模式抽象工厂模式通过创造性的方法来识别工厂本身,这又可以用于创建另一个抽象/接口类型javax.xml.parsers.DocumentBuilderFactory#newInstance()javax.xml.transform.TransformerFactory#newInstance()javax.xml.xpath.XPathFactory#newInstance()建造者模式通过创建方法识别返回实例本身java.lang.StringBuilder#appen原创 2021-09-03 12:34:36 · 383 阅读 · 0 评论 -
spring中使用的设计模式
目录工厂模式单例模式适配器模式装饰器模式代理模式观察者模式策略模式模版方法模式注意:本文参考了 https://blog.csdn.net/caoxiaohong1005/article/details/80039656https://blog.csdn.net/weixin_39595320/article/details/111039337工厂模式实现方式:BeanFactory。 Spring中的BeanFactory就是简单工厂模式的体现,根据传入..原创 2021-09-03 12:34:12 · 508 阅读 · 0 评论 -
Mybatis中使用的设计模式
目录前言Builder模式工厂模式单例模式代理模式组合模式模板方法模式适配器模式装饰者模式迭代器模式注意:本文转自 https://www.cnblogs.com/tanghaorong/p/14094565.html前言虽然我们都知道有26个设计模式,但是大多停留在概念层面,真实开发中很少遇到,Mybatis源码中使用了大量的设计模式,阅读源码并观察设计模式在其中的应用,能够更深入的理解设计模式。Mybatis至少遇到了以下的设计模式的使用:B.原创 2021-09-03 12:33:57 · 179 阅读 · 0 评论 -
解释器模式总结-java版
目录 解释器模式的简介解释器模式的抽象代码解释器模式的具体代码解释器模式的优点解释器模式的缺点解释器模式的适用场景解释器模式的简介解释器模式描述了如何为简单的语言定义一个文法,如何在该语言中表示一个句子,以及如何解释这些句子。在正式分析解释器模式结构之前,我们先来学习如何表示一个语言的文法规则以及如何构造一棵抽象语法树。在前面所提到的加法/减法解释器中,每一...原创 2019-02-05 14:05:35 · 301 阅读 · 0 评论 -
模板方法模式总结-java版
目录 模板方法模式简介模板方法模式的抽象代码模板方法模式的具体代码模板方法模式的钩子模板方法模式的优点模板方法模式的缺点模板方法模式的适用场景模板方法模式简介在软件开发中,有时也会遇到类似的情况,某个方法的实现需要多个步骤(类似“请客”),其中有些步骤是固定的(类似“点单”和“买单”),而有些步骤并不固定,存在可变性(类似“吃东西”)。为了提高代码的复用性和...原创 2019-01-29 16:59:12 · 284 阅读 · 0 评论 -
中介者模式总结-java版
目录 中介者模式的简介中介者模式的抽象代码中介者模式的具体代码中介者模式的优点中介者模式的缺点中介者模式的适用场景中介者模式的简介如果在一个系统中对象之间的联系呈现为网状结构,如图20-4所示。对象之间存在大量的多对多联系,将导致系统非常复杂,这些对象既会影响别的对象,也会被别的对象所影响,这些对象称为同事对象,它们之间通过彼此的相互作用实现系统的行为。在网状结...原创 2019-02-06 18:20:53 · 454 阅读 · 0 评论 -
备忘录模式总结-java版
目录 备忘录模式的简介备忘录模式的抽象代码备忘录模式的具体代码备忘录模式的多次恢复备忘录模式的优点备忘录模式的缺点备忘录模式的适用场景备忘录模式的简介备忘录模式提供了一种状态恢复的实现机制,使得用户可以方便地回到一个特定的历史步骤,当新的状态无效或者存在问题时,可以使用暂时存储起来的备忘录将状态复原,当前很多软件都提供了撤销(Undo)操作,其中就使用了备忘...原创 2019-02-07 15:21:54 · 317 阅读 · 0 评论 -
原型模式总结-java版
目录 原型模式的简介原型模式的抽象代码原型模式的具体代码原型模式的java浅拷贝原型模式的java深拷贝原型模式的优点原型模式的缺点原型模式的适用场景原型模式的简介在使用原型模式时,我们需要首先创建一个原型对象,再通过复制这个原型对象来创建更多同类型的对象。试想,如果连孙悟空的模样都不知道,怎么拔毛变小猴子呢?原型模式的定义如下: 原型模式(Protot...原创 2019-02-08 16:36:58 · 268 阅读 · 0 评论 -
访问者模式总结-java版
目录访问者模式的简介访问者模式的抽象代码访问者模式的具体代码访问者模式的优点访问者模式的缺点访问者模式的适用场景访问者模式的简介的行为型设计模式,它包含访问者和被访问元素两个主要组成部分,这些被访问的元素通常具有不同的类型,且不同的访问者可以对它们进行不同的访问操作。例如处方单中的各种药品信息就是被访问的元素,而划价人员和药房工作人员就是访问者。访问者模式使得...原创 2019-02-09 21:55:07 · 422 阅读 · 0 评论 -
迭代器模式总结-java版
目录 迭代器模式的简介迭代器模式的抽象代码迭代器模式的具体代码迭代器模式的内部迭代器jdk自带的迭代器迭代器模式的优点迭代器模式的缺点迭代器模式的适用场景迭代器模式的简介在软件开发中,我们经常需要使用聚合对象来存储一系列数据。聚合对象拥有两个职责:一是存储数据;二是遍历数据。从依赖性来看,前者是聚合对象的基本职责;而后者既是可变化的,又是可分离的。因此,...原创 2019-01-30 17:04:47 · 1212 阅读 · 0 评论 -
享元模式总结-java版
目录享元模式的简介享元模式的抽象代码享元模式的具体代码享元模式的单纯模式与复合模式与其他模式的联用享元模式与String类享元模式的优点享元模式的缺点享元模式的适用场景享元模式的简介当一个软件系统在运行时产生的对象数量太多,将导致运行代价过高,带来系统性能下降等问题。例如在一个文本字符串中存在很多重复的字符,如果每一个字符都用一个单独的对象来表示,将会占...原创 2019-02-10 15:30:14 · 240 阅读 · 0 评论 -
建造者模式总结-java版
目录 建造者模式的简介建造者模式的抽象代码建造者模式的具体代码建造者模式的省略director建造者模式的钩子方法建造者模式的优点建造者模式的缺点建造者模式的适用场景建造者模式的简介建造者模式是较为复杂的创建型模式,它将客户端与包含多个组成部分(或部件)的复杂对象的创建过程分离,客户端无须知道复杂对象的内部组成部分与装配方式,只需要知道所需建造者的类型即...原创 2019-02-11 10:34:23 · 637 阅读 · 0 评论 -
组合模式总结-java版
目录 组合模式的简介组合模式的抽象代码组合模式的具体代码组合模式的透明与非透明模式组合模式的优点组合模式的缺点组合模式的适用场景组合模式的简介对于树形结构,当容器对象(如文件夹)的某一个方法被调用时,将遍历整个树形结构,寻找也包含这个方法的成员对象(可以是容器对象,也可以是叶子对象)并调用执行,牵一而动百,其中使用了递归调用的机制来对整个结构进行处理。由于容...原创 2019-01-31 09:54:57 · 326 阅读 · 0 评论 -
责任链模式总结-java版
目录 责任链模式的简介责任链模式的抽象代码责任链模式的具体代码责任链模式的纯与非纯模式责任链模式的优点责任链模式的缺点责任链模式的适用场景责任链模式的简介很多情况下,在一个软件系统中可以处理某个请求的对象不止一个,例如SCM系统中的采购单审批,主任、副董事长、董事长和董事会都可以处理采购单,他们可以构成一条处理采购单的链式结构,采购单沿着这条链进行传递,这条...原创 2019-02-04 20:05:08 · 356 阅读 · 0 评论 -
桥接模式总结-java版
目录桥接模式的简介桥接模式的抽象代码桥接模式的具体代码桥接模式与适配器模式桥接模式的优点桥接模式的缺点桥接模式的适用场景桥接模式的简介桥接模式是一种很实用的结构型设计模式,如果软件系统中某个类存在两个独立变化的维度,通过该模式可以将这两个维度分离出来,使两者可以独立扩展,让系统更加符合“单一职责原则”。与多层继承方案不同,它将两个独立变化的维度设计为两个独...原创 2019-02-03 23:32:33 · 294 阅读 · 0 评论 -
装饰模式总结-java版
目录装饰模式简介装饰模式抽象代码装饰模式具体代码装饰模式的透明与半透明模式透明装饰模式半透明装饰模式装饰模式优点装饰模式缺点装饰模式适用场景装饰模式注意事项装饰模式的应用装饰模式简介装饰模式可以在不改变一个对象本身功能的基础上给对象增加额外的新行为,在现实生活中,这种情况也到处存在,例如一张照片,我们可以不改变照片本身,给它增加一个相框,使得它具...原创 2019-01-18 17:45:14 · 347 阅读 · 0 评论 -
命令模式总结-java版
目录命令模式简介命令模式抽象代码命令模式具体代码命令模式的撤销命令模式的命令队列命令模式的请求日志命令模式的优点命令模式的缺点命令模式的适用场景命令模式简介在软件开发中,我们经常需要向某些对象发送请求(调用其中的某个或某些方法),但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个,此时,我们特别希望能够以一种松耦合的方式来设计软件,使得请求发送者与...原创 2019-01-25 09:45:06 · 949 阅读 · 0 评论 -
简单工厂模式总结-java版
目录为什么要用工厂模式简单工厂模式简介简单工厂模式抽象代码简单工厂模式具体代码简单工厂模式的改进简单工厂模式优点简单工厂模式缺点简单工厂模式适用场景为什么要用工厂模式 与一个对象相关的职责通常有三类:对象本身所具有的职责、创建对象的职责和使用对象的职责。 在Java语言中,我们通常有以下几种创建对象的方式: (1) 使用new关键字直接...原创 2019-01-21 17:30:05 · 341 阅读 · 0 评论 -
23种设计模式总结-java版
一、设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式(简单工厂模式)、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代器模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式...原创 2019-01-16 13:20:56 · 262 阅读 · 0 评论 -
策略模式总结-java版
目录 为什么使用策略模式策略模式简介策略模式抽象代码策略模式具体代码策略模式的优点策略模式的缺点策略模式的适用场景为什么使用策略模式在软件开发中,我们也常常会遇到类似的情况,实现某一个功能有多条途径,每一条途径对应一种算法,此时我们可以使用一种设计模式来实现灵活地选择解决途径,也能够方便地增加新的解决途径。比如举一个例子,有父类鸭子,子类红鸭子,绿鸭子,...原创 2019-01-16 14:26:24 · 350 阅读 · 0 评论 -
状态模式总结-java版
目录 状态模式的简介状态模式的抽象代码状态模式的具体代码状态模式的共享状态状态模式的环境类改变状态状态模式的优点状态模式的缺点状态模式的适用场景状态模式的简介状态模式用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这些状态之间可以进行转换,而且对象在不同状态下行为不相同时可以使用状态模式。状态模式将一个对象的状...原创 2019-02-01 09:54:50 · 6569 阅读 · 0 评论 -
工厂方法模式总结-java版
目录工厂方法模式比简单工厂模式好在哪里工厂方法模式简介工厂方法模式抽象代码工厂方法模式具体代码工厂方法的改进工厂方法模式优点工厂方法模式缺点工厂方法模式适用场景工厂方法模式比简单工厂模式好在哪里虽然简单工厂模式实现了对象的创建和使用分离,但是仍然存在如下两个问题:(1) 工厂类过于庞大,包含了大量的if…else…代码,导致维护和测试难度增大;...原创 2019-01-22 14:50:33 · 438 阅读 · 0 评论 -
抽象工厂模式总结-java版
目录 抽象工厂模式比工厂方法模式好在哪里抽象工厂模式简介抽象工厂模式抽象代码抽象工厂模式具体代码抽象工厂模式优点抽象工厂模式缺点抽象工厂模式适用场景抽象工厂模式比工厂方法模式好在哪里工厂方法模式通过引入工厂等级结构,解决了简单工厂模式中工厂类职责太重的问题,但由于工厂方法模式中的每个工厂只生产一类产品,可能会导致系统中存在大量的工厂类,势必会增加系统的开销。...原创 2019-01-22 16:09:08 · 242 阅读 · 0 评论 -
适配器模式总结-java版
目录适配器模式简介适配器模式抽象代码适配器模式具体代码适配器模式的对象适配器与类适配器双向适配器缺省适配器适配器模式的优点适配器模式的缺点适配器模式的适用场景适配器模式简介与电源适配器相似,在适配器模式中引入了一个被称为适配器(Adapter)的包装类,而它所包装的对象称为适配者(Adaptee),即被适配的类。适配器的实现就是把客户类的请求转化为对适配...原创 2019-01-28 15:39:35 · 287 阅读 · 0 评论 -
外观模式总结-java
目录外观模式简介外观模式的抽象代码外观模式的具体代码外观模式的抽象外观类外观模式与适配器模式与装饰者模式的不同外观模式的优点外观模式的缺点外观模式的适用场景外观模式简介外观模式是一种使用频率非常高的结构型设计模式,它通过引入一个外观角色来简化客户端与子系统之间的交互,为复杂的子系统调用提供一个统一的入口,降低子系统与客户端的耦合度,且客户端调用非常方便不...原创 2019-01-28 16:38:34 · 362 阅读 · 0 评论 -
代理模式总结-java版
目录代理模式的简介代理模式的抽象代码代理模式的具体代码代理模式的分类代理模式的jdk动态代理代理模式的优点代理模式的缺点代理模式的适用场景代理模式的简介在软件开发中,也有一种设计模式可以提供与代购网站类似的功能。由于某些原因,客户端不想或不能直接访问一个对象,此时可以通过一个称之为“代理”的第三者来实现间接访问,该方案对应的设计模式被称为代理模式。...原创 2019-02-03 00:28:18 · 400 阅读 · 0 评论 -
单例模式总结-java版
目录单例模式简介单例的具体模式介绍测试类懒汉式饿汉式同步懒汉式双重检查锁定懒汉式饿汉式单例类与懒汉式单例类比较Initialization Demand Holder (IoDH)单例模式的优点单例模式的缺点单例模式的适用场景单例模式简介在实际开发中,我们也经常遇到类似的情况,为了节约系统资源,有时需要确保系统中某个类只有唯一一个实例,当这个...原创 2019-01-23 15:44:35 · 222 阅读 · 0 评论 -
观察者模式总结-java版
目录观察者模式简介观察者模式抽象代码观察者模式的推与拉JDK中的观察者模式Observer接口Observable类setChanged方法notifyObservers()方法 观察者模式具体代码观察者模式优点观察者模式缺点观察者模式适用场景观察者模式的应用观察者模式简介观察者模式是使用频率最高的设计模式之一,它用于建立一种对象与对象之...原创 2019-01-18 14:08:48 · 668 阅读 · 0 评论