设计模式
文章平均质量分 62
大堡小强强
这个作者很懒,什么都没留下…
展开
-
java基础-观察者模式
概述 观察者模式(0bserver Pattern),又叫发布-订阅 (Publish/Subscribe)模式、模型-视图(Model/View)模式、源-监听器(Source/Listener)模式或从属者(Dependents)模式。定义一种一对多的依赖关系,一个主题对象可被多个观察者对象同时监听,使得每当主题对象状态变化时,所有依赖于它的对象都会得到通知并被自动更新。 属于行为型模式。 生活场景 APP角标通知 起床闹钟设置 使用场景 1、当一个抽象模型包含两个方面内容,其中一个方.原创 2021-07-07 22:41:13 · 160 阅读 · 2 评论 -
java基础-策略模式
概述 策略模式(Strategy Pattern)又叫也叫政策模式(Policy Pattern),它是将定义的算法家族分别封装起来,让它们之间可以互相替换,从而让算法的变化不会影响到使用算法的用户。 可以避免多重分支的if. ..else.. .和switch语句 属于行为型模式。 场景 阶梯个税 支付方式选择 1、假如系统中有很多类.而他们的区别仅仅在于他们的行为不同 2、一个系统需要动态地在几种算法中选择一种。 3、需要屏蔽算法规则。 优点 1、策略模式符合开闭原则; 2、避免使用多..原创 2021-07-06 20:49:40 · 574 阅读 · 1 评论 -
java基础-委派模式
概述 委派模式(Delegate Pattern)又叫委托模式。它的基本作用就是负责任务的调度和任务分配,将任务的分配和执行分离开来。可以看做是一种特殊情况下的静态代理的全权代理。 不属于GOF 23种设计模式之一。 属于行为型模式。 场景 1、委派对象本身不知道如何处理一个任务(或一个请求),把请求交给其它对象来处理。 2、实现程序的解耦。 优点 通过任务委派能够将一个大型的任务细化,然后通过统一管理这些子"任务的完成情况实现任务的跟进,能够加快任务执行的效率。 缺点 任务委派方式需..原创 2021-07-06 20:11:41 · 1384 阅读 · 2 评论 -
java基础-桥接模式
桥接模式的定义 桥接模式(Bridge Pattern))也称为桥梁模式、接口(Interfce)模式或柄体(Handle and Body)模式,是将抽象部分与它的具体实现部分分离,使它们都可以独立地变化 通过组合的方式建立两个类之间的联系,而不是继承 属于结构型模式。 应用场景 1、在抽象和具体实现之间需要增加更多的灵活性的场景 2、一个类存在两个(或多个)独立变化的维度,而这两个(或多个)维度都需要独立进行扩展 3、不希望使用继承,或因为多层继承导致系统类的个数剧增 连接起两个...原创 2021-07-06 06:54:40 · 155 阅读 · 1 评论 -
java基础-适配器模式
概述 一个类的接口变成客户端所期望的另一种接口,从而使原本因接口不匹配而导致无法在一起工作的两个类能够一起工作。 属于结构型设计模式。 场景 场景:两脚转三角;手机充电接口;显示器接口 1、已经存在的类,它的方法和需求不匹配(方法结果相同或相似)的情况。 2、适配器模式不是软件设计阶段考虑的设计模式,是随着软件维护,由于不同产品、不同厂家造成功能类似而接口不相同情况下的解决方案。 类似于,亡羊补牢,打补丁; 适配器模式的优点 1、能提高类的透明性和复用,现有的类复用但不需要改变。 2、..原创 2021-07-06 05:37:03 · 216 阅读 · 2 评论 -
java基础-代理模式
d原创 2021-07-04 16:30:43 · 134 阅读 · 1 评论 -
修饰者模式
概述 装饰器模式(Decorator Pattern)也叫包装模式(Wrapper Pattern),是指在不改变原有对象的基础之上,将功能附加到对象上,提供了比继承更有弹性的替代方案(扩展原有对象的功能)。 属于结构型模式。 场景 肉夹馍 蛋糕 1、用于扩展一个类的功能或给一个类添加附加职责 2、动态的给一个对象添加功能,这些功能可以再动态撤销。 装饰器模式的优点 1、装饰器是继承的有力补充,比继承灵活,不改变原有对象的情况下动态地给一个对象扩展功能,即插即用。 2、通过使用不同装饰类以及原创 2021-07-04 18:08:33 · 155 阅读 · 0 评论 -
访问者模式
访问者模式 参考:https://www.jianshu.com/p/1f1049d0a0f4,https://www.runoob.com/design-pattern/visitor-pattern.html 是什么? 需要对一个对象结构中的对象进行很多不同的并且不相关的操作,而需要避免让这些操作"污染"这些对象的类,使用访问者模式将这些封装到类中。 人话 :年底,CEO和CTO开始评定员工一年的工作绩效,员工分为工程师和经理,CTO关注工程师的代码量、经理的新产品数量;CEO关注的是工程师的K原创 2021-04-16 14:56:45 · 101 阅读 · 0 评论 -
委派模式
是什么? 1.在常用的23种设计模式中其实面没有委派模式(delegate)的影子,但是在Spring中委派模式确实用的比较多的一种模式,Spring MVC框架中的DispatcherServlet其实就用到了委派模式,有前辈将其总结为代理模式和策略模式的组合 ; 2.我们在项目开发中都是一个项目团队,老板把任务交给项目经理后,项目经理制定项目计划、将任务下发到底下的开发人员,这就是委派模式...原创 2018-12-07 12:48:17 · 204 阅读 · 0 评论 -
观察者模式
是什么? 1.当对象间存在一对多关系时,则使用观察者模式(Observer Pattern)。比如,当一个对象被修改时,则会自动通知它的依赖对象。观察者模式属于行为型模式。 为什么? 1.一个对象状态改变给其他对象通知的问题,而且要考虑到易用和低耦合,保证高度的协作; 2.一个对象(目标对象)的状态发生改变,所有的依赖对象(观察者对象)都将得到通知,进行广播通知。 怎么办? pack...原创 2018-12-13 22:01:03 · 108 阅读 · 0 评论 -
设计模式-单例模式
是什么? 1.单例模式是一种常用的软件设计模式,其定义是单例对象的类只能允许一个实例存在。许多时候整个系统只需要拥有一个的全局对象,这样有利于我们协调系统整体的行为。比如在某个服务器程序中,该服务器的配置信息存放在一个文件中,这些配置数据由一个单例对象统一读取,然后服务进程中的其他对象再通过这个单例对象获取这些配置信息。这种方式简化了在复杂环境下的配置管理。 2.单例模式确保某个类只有一个实例...原创 2018-11-09 10:21:18 · 193 阅读 · 0 评论 -
设计模式-代理模式
是什么 1.为其他对象提供一种代理以控制对这个对象的访问。 2.代理模式给某一个对象提供一个代理对象,并由代理对象控制对原对象的引用。通俗的来讲代理模式就是我们生活中常见的中介。举个例子来说明:假如说我现在想买一辆二手车,虽然我可以自己去找车源,做质量检测等一系列的车辆过户流程,但是这确实太浪费我得时间和精力了。我只是想买一辆车而已为什么我还要额外做这么多事呢?于是我就通过中介公司来买车,他们...原创 2018-11-08 19:19:08 · 142 阅读 · 0 评论 -
工厂方法模式
是什么? 1.工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 2.定义成一个接口。或者抽象类,其他的增,删,乘 ,除。分别实现这个工厂,然后在这个实现的工厂里面实现, 在接口里面,或者在抽象类里面定义的方法,并且在这个实现的具体工厂类里面实现具体的业务工厂操作; 这就是工厂方法,将接口里面的方法为了进行更合适开放封闭原则,在定义...原创 2018-12-04 10:32:59 · 119 阅读 · 0 评论 -
适配器
是什么? 1.适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。 这种模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能。举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器。您将内存卡插入读卡器,再将读卡器插入笔记本,这样就可以通过笔记本来读取内存卡。 2.将一个类的接口转换成客户希望的另...原创 2018-12-07 18:26:04 · 147 阅读 · 0 评论 -
装饰器模式
是什么? 1.装饰器模式(Decorator Pattern)允许向一个现有的对象添加新的功能,同时又不改变其结构。这种类型的设计模式属于结构型模式,它是作为现有的类的一个包装。这种模式创建了一个装饰类,用来包装原有的类,并在保持类方法签名完整性的前提下,提供了额外的功能。 2.就是对已经存在的某些类进行装饰,以此来扩展一些功能。 3.is-a的关系,其本质不变; 为什么? 1.不修改原...原创 2018-12-12 17:24:14 · 111 阅读 · 0 评论 -
抽象工厂
是什么? 1.抽象工厂模式(Abstract Factory Pattern)是围绕一个超级工厂创建其他工厂。该超级工厂又称为其他工厂的工厂。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在抽象工厂模式中,接口是负责创建一个相关对象的工厂,不需要显式指定它们的类。每个生成的工厂都能按照工厂模式提供对象。 2.就是对一组具有相同主题的工厂进行封装; 3.抽象工厂就是对接口的...原创 2018-12-05 22:56:53 · 139 阅读 · 0 评论 -
简单工厂模式
1.是什么? 1.简单工厂模式是属于创建型模式,又叫做静态工厂方法(Static Factory Method)模式,但不属于23种GOF设计模式之一。简单 工厂模式是由一个工厂对象决定创建出哪一种产品类的实例。简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是 不同工厂模式的一个特殊实现。 2.该模式中包含的角色及其职责 工厂(Creator)角色: 简单工厂模式的核心,它负...原创 2018-12-04 09:37:53 · 135 阅读 · 0 评论 -
原型模式
是什么? 1.原型模式(Prototype Pattern)是用于创建重复的对象,同时又能保证性能。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。 2.使用原型实例指定待创建对象的类型,并且通过复制这个原型来创建新的对象。 3.原型模式就是复制对象; 为什么? 1.这种模式是实现了一个原型接口,该接口用于创建当前对象的克隆。当直接创建对象的代价比较大时,则采用这种模式...原创 2018-12-06 15:34:12 · 221 阅读 · 0 评论 -
模板模式
是什么? 1.定义一个模板结构,将具体内容延迟到子类去实现; 2.完成一件事情,有固定的数个步骤,但是每个步骤根据对象的不同,而实现细节不同;就可以在父类中定义一个完成该事情的总方法,按照完成事件需要的步骤去调用其每个步骤的实现方法。每个步骤的具体实现,由子类完成; 3.在模板模式(Template Pattern)中,一个抽象类公开定义了执行它的方法的方式/模板。它的子类可以按需要重写方法...原创 2018-12-06 18:17:06 · 149 阅读 · 0 评论 -
设计模式 - 策略模式
为什么? .一个类的操作,或方法在运行期间是动态改变的,我们会根据场景的不同调用不同的方法, 即使用 if...else 调用不同的方法,则会带来代码的复杂度和难以维护,于是我们提出了策略模式; 是什么? 1.在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。 在策略模式中,我们创建表示各种策略的对象和一个行为随...原创 2018-11-06 18:08:22 · 149 阅读 · 0 评论