
设计模式
文章平均质量分 63
23种设计模式通俗易懂
稚皓君
欢迎你的光临,随便看看就好 ^_^
展开
-
设计模式之桥接模式应用例题
某手机美图APP软件支持多种不同的图像格式,例如JPG、GIF、BMP等常用图像格式,同时提供了多种不同的滤镜对图像进行处理,例如木刻滤镜(Cutout)、模糊滤镜(Blur)、锐化滤镜(Sharpen)、纹理滤镜(Texture)等。现采用桥接模式设计该APP软件,使得该软件能够为多种图像格式提供一系列图像处理滤镜,同时还能够很方便地增加新的图像格式和滤镜,绘制对应的类图、类图说明并编程模拟实现。...原创 2022-06-30 20:13:07 · 3024 阅读 · 1 评论 -
设计模式之单例模式应用例题
某Web性能测试软件中包含一个虚拟用户生成器(Virtual User Generator)。为了避免生成的虚拟用户数量不一致,该测试软件在工作时只允许启动唯一一个虚拟用户生成器。采用单例模式设计该虚拟用户生成器,绘制类图并分别使用饿汉式单例和双重检测锁两种方式编程模拟实现绘制类图、类图说明并编程实现。...原创 2022-06-30 20:08:26 · 2708 阅读 · 1 评论 -
设计模式之职责链模式应用例题
军队中,一般根据战争规模的大小和重要性由不同级别的长官(Officer)来下达作战命令,情报人员向上级递交军情(如敌人的数量),作战命令需要上级批准,如果直接上级不具备下达命令的权力,则上级又传给上级,直到有人可以决定为止。现使用职责链模式来模拟该过程,客户类(Client)模拟情报人员,首先向级别最低的班长(Banzhang)递交任务书(Mission),即军情,如果超出班长的权力范围,则传递给排长(Paizhang),排长如果也不能处理则传递给营长(Yingzhang),如果营长也不能处理则需要开会讨论原创 2022-06-30 20:03:41 · 2686 阅读 · 2 评论 -
设计模式之代理模式应用例题
应用软件所提供的桌面快捷方式是快速启动应用程序的代理,桌面快捷方式一般使用一张小图片来表示,通过调用快捷方式的run()方法将调用应用软件的run()方法。使用代理模式模拟该过程,绘制类图、类图说明并编程模拟实现。...原创 2022-06-30 19:58:44 · 3351 阅读 · 2 评论 -
设计模式之工厂方法模式应用例题
现需要设计一个程序来读取多种不同类型的图片格式,针对每一种图片格式都设计一个图片读取器(ImageReader),如GIF图片读取器(GifReader)用于读取GIF格式图片、JPEG图片读取器(JPEG)用于读取JPEG格式的图片。图片读取器对象通过图片读取器工厂ImageReaderFactory来创建。请使用工厂方法模式实现该程序的设计,绘制类结构图、类图说明及编写相应代码...原创 2022-06-30 19:55:05 · 4892 阅读 · 0 评论 -
设计模式之组合模式与观察者模式应用例题
(1)行政管理人员可以给某个或某些员工(Employee)发送会议通知,也可以给某个部门(Department)发送通知,如果给某个部门发送通知,将逐个给该部门每个员工发送会议通知。(2)如果员工或部门希望能够收到会议通知,必须先注册到一个会议列表(MeetingList)中,在发送通知时,系统将遍历会议列表,逐个将会议通知发送给注册用户(User)。...原创 2022-06-30 19:50:22 · 2324 阅读 · 0 评论 -
UML类图
UML类图基本介绍应用实例依赖关系基本介绍UML(统一建模语言),是一种用于软件系统分析和设计的语言工具,它用于帮助软件开发人员进行思考和记录思路的结果UML本身是一套符号规定,就像数学符号和化学符号一样,这些符号用于描述软件模型中各个元素和他们之间的关系,比如类、接口、实现、泛化、依赖、组合、聚合等。应用实例类之间的关系:依赖、泛化(继承)、实现、关联、聚合与组合类图简单举例package com.szh.uml;public class Person { private原创 2022-05-31 22:51:26 · 137 阅读 · 6 评论 -
设计模式之合成复用原则
合成复用原则基本介绍基本介绍原则是尽量使用合成 / 聚合的方式,而不是使用继承原创 2022-05-14 22:36:22 · 140 阅读 · 0 评论 -
设计模式之迪米特法则
迪米特法则基本介绍应用实例注意事项基本介绍一个对象应该对其他对象保持最少的了解类与类关系越密切,耦合密越大迪米特法则又叫最少知道原则,即一个类对自己依赖的类知道的越少越好。也就是说,对于被依赖的类不管多么复杂,都尽量将逻辑封装在类的内部。对外除了提供的public方法,不对对外泄露任何信息迪米特原则还有个更简单的定义:只与直接的朋友通信直接的朋友:每个对象都会与其他对象有耦合关系,只要两个对象之间有耦合关系,我们就说这两个对象之间是朋友关系。耦合的方式很多,依赖,关联,组合,聚合等。其中,我们原创 2022-05-14 22:25:17 · 173 阅读 · 0 评论 -
设计模式之开闭原则
开闭原则基本介绍应用实例基本介绍开闭原则是编程中最基础、最重要的设计原则一个软件实体如类,模块和函数应该对扩展开放(对提供方),对修改关闭(对使用方)。用抽象构建框架,用实现扩展细节当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来实现变化编程中遵循其他原则,以及使用设计模式的目的就是遵循开闭原则应用实例方案1(传统方法)package com.szh.principle.ocp;/* 1.优点是比较好理解,简单易操作 2.缺点是违反了设计模式的原创 2022-05-14 21:21:31 · 111 阅读 · 0 评论 -
设计模式之里氏替换原则
里氏替换原则基本介绍应用实例基本介绍如果对每个类型为T1的对象o1,都有类型为T2的对象o2,使得以T1定义的所有程序p在所有的对象o1都替换成o2时,程序p的行为没有发生变化,那么类型T2是类型T1的子类型。换句话说,所有引用基类的地方必须能透明的使用其子类的对象在使用继承时,遵循里氏替换原则,在子类中尽量不要重写父类分方法里氏替换原则告诉我们,继承实际上让两个类耦合性增强了,在适当的情况下可以通过聚合,组合,依赖来解决问题应用实例方案1package com.szh.principle原创 2022-05-14 20:37:36 · 226 阅读 · 0 评论 -
设计模式之依赖倒转原则
依赖倒转原则基本介绍应用实例注意事项基本介绍依赖倒转原则是指:高层模块不应该依赖低层模块,二者都应该依赖其抽象抽象不应该依赖细节,细节应该依赖抽象依赖倒转的中心思想是面向接口编程依赖倒转原则是基于这样的设计理念:相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。在Java中,抽象指的是接口或抽象类,细节就是具体的实现类使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的任务交给他们的实现类去完成三种传递方法:接口传递、构造方原创 2022-05-14 20:00:43 · 185 阅读 · 0 评论 -
设计模式之接口隔离原则
接口隔离原则基本结束应用实例基本结束客户类不应该依赖它不需要的接口,即一个类对另一个类的依赖应该建立在最小的接口上。看下图信息类A通过接口Interface1依赖类B,类C通过接口Interface1依赖类D,如果接口Interface1对于类A和类C来说不是最小接口,那么类B和类D必须去实现他们不需要的方法。按隔离原则应当这样处理:将接口Interface1拆分为独立几个接口,类A和类C分别与他们需要的接口建立依赖关系,也就是采用接口隔离原则接口Interface1中出现的方法,根据实际情原创 2022-05-14 17:01:42 · 223 阅读 · 0 评论 -
设计模式之单一职责原则
单一职责原则基本介绍应用实例注意事项和细节基本介绍对类来说的,即一个类应该只负责一项职责。如果类A负责两个不同的职责:职责1,职责2。当职责1需要变更而改变A时,可能造成职责2执行错误,所以需要将类A的粒度分解为A1,A2。应用实例以交通工案例讲解方案1package com.szh.principle.singleresponsibility;public class SingleResponsibility1 { public static void main(String[]原创 2022-05-14 14:40:01 · 175 阅读 · 0 评论