设计模式
文章平均质量分 95
JeromeChen_CDU
学如逆水行舟,不进则退...
展开
-
工厂模式学习总结
目录工厂模式引言定义工厂模式结构图实例实例描述代码实现工厂模式扩展静态工厂方法(简单工厂模式)总结模式优点模式缺点工厂模式引言在面向对象的编程中,创建一个对象(实例化)主要使用new关键字,工厂模式将类的使用和创建解耦。用户要使用一个类的时候,无需关心该类的具体创建过程,甚至无需知道该类类名,只需要通过工厂类返回需要的实例。就...原创 2019-03-19 10:21:07 · 1129 阅读 · 0 评论 -
外观模式学习总结
目录外观模式引言定义模式类图实例实例描述实例类图代码实现模式扩展外观类的数量抽象外观类总结模式优点模式缺点外观模式引言一般情况下,一个Web网站都会提供一个首页,作为网站的入口,我们只需要记住这个首页的地址,即可访问它的各个子页面的超链接。当然,用户也可以记住每个子页面的地址,直接通过子页面的地址直接访问。实际上用户是不会记...原创 2019-04-10 10:23:33 · 1688 阅读 · 0 评论 -
代理模式学习总结
目录代理模式引言定义模式类图代理模式类型远程代理虚拟代理图片代理Copy-on-Write代理保护代理缓冲代理防火墙代理同步化代理智能引用代理动态代理总结模式优点模式缺点代理模式引言在某些情况下,一个客户不能或者不想直接引用一个对象,此时可以通过一个称之为“代理”的第三方来间接引用。代理可以在客户端和目标对象...原创 2019-04-24 10:05:47 · 738 阅读 · 0 评论 -
职责链模式学习总结
目录职责链模式引言定义模式类图实例实例描述实例类图代码实现模式扩展纯与不纯的职责链模式总结模式优点模式缺点职责链模式引言在很多情况下,可以处理某个请求的对象不止一个,这些处理请求的对象可以构成一条链,请求按照这条链传递,这条链就称为职责链。职责链可以是一个条直线,一个环或者树形结构,最常见的职责链是直线型。定义英文定义...原创 2019-04-11 13:31:22 · 2156 阅读 · 0 评论 -
解释器模式学习总结
目录解释器模式引言定义模式结构图实例实例说明实例类图代码实现总结模式优点模式缺点解释器模式引言解释器模式主要使用于面向对象语言开发的编译器和解释器设计,平时不常使用。在某些情况下,为了更好地描述某一些特定的问题,可以创建一个新的语言,这个语言拥有自己的表达式和结构,即语法规则,而且可以根据需要灵活的增加新的语法规则。定义英文定义...原创 2019-04-25 10:42:16 · 694 阅读 · 0 评论 -
迭代器模式学习总结
目录迭代器模式引言定义模式结构图实例实例说明实例类图代码实现总结模式优点模式缺点迭代器模式引言迭代器模式是一种使用频率非常高的设计模式,用于对一个聚合对象进行遍历。很多语言都定义了迭代器接口。通过引入迭代器可以将数据的遍历功能从聚合对象中分离出来,聚合对象只负责存储数据,而遍历则交给迭代器完成,简化了聚合对象的设计,更符合“职责单一原...原创 2019-05-01 15:37:19 · 1926 阅读 · 0 评论 -
中介者模式学习总结
目录中介者模式引言定义模式结构图实例实例说明实例类图代码实现总结模式优点模式缺点中介者模式引言对于那些存在对象之间复杂交互关系的系统,中介者模式提供了一种简化复杂交互的解决方案,它通过引入一个中介者,将原本对象之间的俩俩交互转换为每个对象与中介者之间的交互,中介者可以对象之间的通信进行控制与协调,极大降低了原有系统的耦合度,使得系统更...原创 2019-05-06 17:02:23 · 595 阅读 · 0 评论 -
备忘录模式学习总结
目录备忘录模式引言定义模式结构图实例实例说明实例类图代码实现模式扩展备忘录的封装性总结模式优点模式缺点备忘录模式引言现在大多数软件都有撤销功能,快捷键一般都是Ctrl+Z。人们在使用软件的时候,如果出现误操作,则可以使用撤销功能恢复到误操作之前的状态。备忘录模式是软件系统的“月光宝盒”,它提供了一种对象状态的撤销实现机制。定...原创 2019-05-01 15:37:05 · 684 阅读 · 0 评论 -
观察者模式学习总结
目录观察者模式引言模式定义模式结构图实例实例说明实例类图代码实现模式扩展 IObserver和IObserverable接口MVC模式总结模式优点模式缺点观察者模式引言观察者模式是一种经常使用的设计模式,在软件系统中对象并不是孤立存在的,一个对象的行为的改变可能会导致一个或者多个其他与之存在依赖的对象行为发生...原创 2019-05-01 15:36:50 · 1145 阅读 · 0 评论 -
状态模式学习总结
状态模式状态模式是一种较为复杂的设计模式,它用于解决系统中复杂对象的状态转换以及不同状态下行为的封装问题。当系统中某个对象存在多个状态,这个状态之间可以进行转换,而对象在不同状态下行为补相同时可以使用状态模式。定义英文定义:“Allow an object to alter its behavior when its internal state changes.The object ...原创 2019-05-05 15:34:45 · 591 阅读 · 0 评论 -
策略模式学习总结
目录策略模式引言定义模式结构图实例实例说明实例类图代码实现总结模式优点模式缺点策略模式引言策略模式对应于解决某一问题的一个算法族,允许用户从该算法族中任选一个算法解决某一个问题,同时可以方便地更换或者增加新的算法。定义英文定义:“Define a family of algorithms,encapsulate each one,a...原创 2019-05-05 09:51:36 · 750 阅读 · 0 评论 -
享元模式学习总结
目录享元模式引言定义模式类图实例实例描述实例类图实现代码模式扩展单纯享元模式复合享元模式总结模式优点模式缺点享元模式引言当系统中存在大量相同或相似的对象时,享元模式是一种较好的解决方案,它通过共享技术实现相同或相似的细粒度对象的复用,从而节约了内存空间。定义英文定义:"Use the sharing to suppo...原创 2019-04-04 14:02:37 · 650 阅读 · 0 评论 -
装饰模式学习总结
目录装饰模式引言定义模式类图实例实例描述实例类图代码实现模式扩展透明装饰模式和半透明装饰模式实例实例描述实例类图代码实现总结模式优点模式缺点装饰模式引言装饰模式是一种用于替代继承的技术,它通过一种无需定义子类的方式来给对象动态地增加职责,使用对象之间的关联关系取代类之间的继承关系。定义英文定义:"Atta...原创 2019-04-04 17:31:19 · 2067 阅读 · 0 评论 -
抽象工厂模式学习总结
抽象工厂模式引言工厂模式是抽象工厂模式特例,在工厂模式中,一个工厂对应一个产品,在抽象工厂模式中,一个工厂对应N个产品,当N=1时,抽象工厂模式就退化成了工厂模式。 抽象工厂模式重要等级★★★★★ 抽象工厂模式难度等级★★★★☆定义英文定义:"Provide an interface...原创 2019-03-19 13:39:53 · 3175 阅读 · 0 评论 -
单例模式学习总结
目录 单例模式引言定义单例模式结构图代码实现单例模式的进阶学习饿汉式懒汉式Double-Checked locking(DCL,双重检验锁)静态内部类枚举单例破坏与单例保护克隆破坏单例序列化破坏单例反射破坏单例单例模式的扩展多例模式代码实现总结模式优点模式缺点单例模式引言对于系统中的某些类来说,只有...原创 2018-12-30 11:06:07 · 570 阅读 · 0 评论 -
适配器模式学习总结
目录 适配器模式引言定义模式结构图实例实例描述代码实现适配器模式扩展类适配器和对象适配器默认适配器双向适配器总结模式优点模式缺点适配器模式引言在现实生活中,插头和插座是需要匹配的,三孔的插头不能使用俩孔的插座。当我们只有俩孔的插座,插头确实三孔的怎么办呢?通常的做法是加入一个排插,这样通过排插作为中介,也可以通电。在面向对象的...原创 2019-01-04 19:29:00 · 1454 阅读 · 3 评论 -
关于我的设计模式的博文
本来我没打算写这篇的,因为它本身毫无意义。然而,我发现我在写设计模式的博文时,资料引用的声明每次写完我都要写一下。如果24种设计模式我全部写下来,同样的字我就要打24次,那我这还叫程序员吗!复用性太差了。嘿嘿,因此,我临时决定重复内容统一写到这篇博文中。(1)博文参考了大量的网上资料,但是我并非搬运,代码实现和文章内容主要还是原创,因此不列举参考的资料(感谢所有乐意分享的朋友)。另外,本文...原创 2019-01-04 19:48:00 · 137 阅读 · 0 评论 -
桥接模式学习总结
桥接模式引言假如一个系统需要加入报表模块,主要的开发点是数据的获取和报表的显示方式。数据的获取可能是从系统数据库中读取数据,也可能是从Excel文件中读取数据,还可以是通过接口获取数据等。报表的显示方式也繁多,比如用柱状图显示,用表格显示,用折线图显示等。如果对每一种情况都设计一个类,那么要实现该系统需要的类的数量是非常庞大的(数据的获取方式*报表显示方式)。那么如何设计这样的系统呢?本文...原创 2019-01-06 15:41:48 · 941 阅读 · 0 评论 -
组合模式学习总结
目录 组合模式引言定义组合模式结构图组合模式实例-产品生产准备实例描述实例类图代码实现组合模式的扩展透明组合模式安全组合模式抽象叶子类和抽象容器类总结模式优点模式缺点组合模式引言在面向对象系统中,我们常常会遇到一类具有“容器”特征的对象,它们在充当普通对象的同时,又可以作为其他对象的容器,这些对象称为容器对象,而那些只能充...原创 2019-01-02 19:44:08 · 1022 阅读 · 0 评论 -
模板方法模式学习总结
目录模板方法模式引言定义模板方法模式结构图实例实例描述代码实现模式分析模板方法基本方法抽象方法具体方法钩子方法总结模式优点模式缺点 模板方法模式引言在现实生活中很多事情的完成过程都包含几个基本步骤,例如到请客吃饭,无论吃什么,一般都包含点单、吃东西、买单几个步骤,到底吃什么则具体情况具体分析,在实际环境中再有有户动态决...原创 2019-01-02 17:41:53 · 484 阅读 · 0 评论 -
建造者模式学习总结
目录 建造者模式引言定义模式结构图实例实例描述代码实现建造者模式扩展建造者模式的简化抽象指挥者总结模式优点模式缺点建造者模式引言无论是现实生活中还是软件系统中,都存在一些复杂的对象,它们拥有多个组成部分。如汽车,它包含车轮、方向盘、发动机等部件。对于大多数用户而言,无需知道这些部件的创造过程和汽车的装配细节,只需要通过汽车型号买到...原创 2019-01-07 16:20:20 · 1465 阅读 · 0 评论 -
24种设计模式合集实例代码
本文主要介绍我上传的一个学习资源的使用方法。资源链接:https://download.csdn.net/download/chen_xuyuan/109017141)将DosClient设置为启动项目,运行后显示如下界面:2)控制台输入数字或者类名,转到具体的测试实例。如输入数字1 ,按回车:3)重复2步骤,即可重复测试不同的实例。 ...原创 2019-01-07 17:00:31 · 479 阅读 · 0 评论 -
命令模式学习总结
目录命令模式引言定义模式结构图模式分析实例实例描述代码实现模式扩展命令模式实现撤销操作宏命令总结模式优点模式缺点命令模式 引言命令模式将请求发送者和请求接收者解耦,请求发送者通过命令对象间引用接收者,使得系统具有更好的灵活性,可以在不修改现有系统源代码的情况下将相同的发送者对应不同的接收者,也可以将多个命令组合成宏命令,可以再...原创 2019-02-19 10:17:00 · 757 阅读 · 0 评论 -
原型模式学习总结
目录原型模式引言定义模式结构图实例实例描述实例类图代码实现模式扩展深克隆和潜克隆原型管理总结模式优点模式缺点原型模式引言原型模式是一种特殊的创建型模式,当需要创建大量相同或相似的对象时,可以通过对一个已有的对象的复制获取更多对象。定义英文定义:"Specify the kind of objects to creat...原创 2019-03-22 15:33:22 · 986 阅读 · 0 评论 -
访问者模式学习总结
目录访问者模式引言定义模式结构图实例实例说明实例类图代码实现模式扩展倾斜的“开闭原则”总结模式优点模式缺点访问者模式引言访问者模式是一种较为复杂的行为型设计模式,它包含访问者和被访问元素俩个主要组成部分,这些被访问的元素具有不同的类型,且不同的访问者可以对其进行不同的访问操作。访问者模式使得用户可以在不修改现有系统的情况下扩展系...原创 2019-05-10 16:24:10 · 557 阅读 · 0 评论