
设计模式
每天都要进步哇
于2017年12月份步入软件开发行业,主要擅长java,目前从事的也是有关java开发的工作
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
职责链模式
定义职责链模式(Chain of Responsibility Pattern),又叫责任链模式,为请求创建了一个接收者对象的链。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式。职责链模式的注意事项和细节将请求和处理分开,实现解耦,......原创 2020-04-18 18:41:14 · 126 阅读 · 0 评论 -
状态模式
定义状态模式(StatePattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换。状态模式的注意事项和细节代码有很强的可读性。状态模式将每个状态的行为封装到对应的一个类中方便维护。将容易产生问题的if-else语句删除了,如果把每个状态的行为都放到一个类中,每次调用方法时都要判断当前是什么状态,不但会产出很多 ......原创 2020-04-18 16:41:30 · 214 阅读 · 1 评论 -
备忘录模式
定义备忘录模式(MementoPattern)在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这 个状态。这样以后就可将该对象恢复到原先保存的状态。备忘录模式属于行为型模式。实现public class Memento { int attack; int defend; public Memento(int attack, int defe...原创 2020-04-16 23:37:00 · 97 阅读 · 1 评论 -
策略模式
定义策略模式(StrategyPattern)中,定义算法族(策略组),分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体 类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)。策略模式的注意事项和细节策略模式的关键是:分析项目中变化部...原创 2020-04-18 17:17:57 · 150 阅读 · 0 评论 -
观察者模式
定义观察者模式主要是针对对象之间多对一依赖的一种设计方案,被依赖的对象为 Subject,依赖的对象为 Observer,Subject 通知 Observer 变化。实现import java.util.ArrayList;import java.util.List;/** * 观察者模式 */public interface Observer { void u...原创 2020-04-16 15:04:18 · 141 阅读 · 0 评论 -
迭代器模式
定义迭代器模式(IteratorPattern)是常用的设计模式,属于行为型模式,如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式,提供一种遍历集合元素的统一接口,用一致的方法遍历集合元素,不需要知道集合对象的底层表示,即:不暴露其内部...原创 2020-04-16 01:44:43 · 152 阅读 · 1 评论 -
访问者模式
定义访问者模式(VisitorPattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。即主要将数据结构与数据操作分离,解决数据结构和操作耦合性问题。访问者模式的基本工作原理是在被访问的类里面加一个对外提供接待访问者的接口。访问者模式主要应用场景是当需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联),同时需要避免让这...原创 2020-04-15 22:56:35 · 153 阅读 · 0 评论 -
命令模式
定义命令模式(CommandPattern):在软件设计中,我们经常需要向某些对象发送请求,但是并不知道请求的接收者是谁,也不知道被请求的操作是哪个, 我们只需在程序运行时指定具体的请求接收者即可,此时,可以使用命令模式来进行设计,命令模式使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活,实现解耦。在命令模式中,会将一个请求封装为一个对象,以便使用不同参数来表示不同的...原创 2020-04-15 16:31:04 · 126 阅读 · 1 评论 -
模版模式
定义模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),是在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。换句话说,模板方法模式其实是定义了一个操作中的算法的骨架,而每一个步骤的实现根据子类的实际情况该抽象抽象该重写重写,这样满足了所有子类在实现自己需求的前提下都遵循了一套...原创 2020-04-15 12:29:50 · 152 阅读 · 0 评论 -
代理模式
定义代理模式:为一个对象提供一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处 是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。代理模式有不同的形式, 主要有三种 静态代理、动态代理 (JDK 代理、接口代理)和 Cglib 代理 (可以在内存动态的创建对象,而不需要实现接口, 他是属于动态代理的范畴) 。静态代理静态代理在使用时,需要...原创 2020-04-15 03:13:22 · 169 阅读 · 0 评论 -
享元模式
定义享元模式(FlyweightPattern)也叫蝇量模式,该模式通过共享对象可以有效解决需要大量创建重复对象的问题。常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,而不是重新创建,如果没有我们需要的,则创建一个。享元模式很好地解决了重复对象的内存浪费问题从而提高效率。享元模式经典的应用场景就是池技术了,String...原创 2020-04-12 23:32:06 · 64 阅读 · 0 评论 -
外观模式
定义外观模式(Facade),也叫过程模式;外观模式为子系统中的一组接口提供一个一致的界面,此模式定义了 一个高层接口,这个接口使得这一子系统更加容易使用,而且也起到了屏蔽内部子系统的细节的作用,使得调用端只需跟这个接口发生交互,而无需关心这个子系统的内部细节。外观模式的注意事项和细节外观模式对外屏蔽了子系统的细节,因此外观模式降低了客户端对子系统使用的复杂性外观模式对客户端与子系...原创 2020-04-12 18:57:17 · 135 阅读 · 0 评论 -
组合模式
定义组合模式(CompositePattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。这种类型的设计模式属于结构型模式。组合模式方便创建出复杂的层次结构。客户端不用理会组合里面的组成细节,容易添加节点或者叶子从而创建出复杂的树形结构组合模式的注意事项和细节需要遍历组织机构,或者处理的对象具有树形结构时, 非常适合使用组合模式....原创 2020-04-12 16:59:17 · 159 阅读 · 0 评论 -
装饰者模式
定义动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了 开闭原则(ocp)。属于结构型的设计模式。实现/** * 装饰者模式 */public class Decorator extends Drink { Drink drink; public Decorator(Drink drink) { this.d...原创 2020-04-12 14:25:26 · 86 阅读 · 0 评论 -
桥接模式
定义桥接模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的 功能扩展,属于结构型设计模式的一种作用和应用场景桥接模式替代多层继承方案,可以减少子类的个数,降低系统的管理和维护成本。对于那些不希望使用继承或多层次继承导致...原创 2020-04-12 11:14:55 · 142 阅读 · 0 评论 -
适配器模式
简介适配器模式(AdapterPattern)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。属于结构型模式,它主要分为三类,分别是类适配器模式,对象适配器模式和接口适配器模式。这种模式的好处在于从用户的角度是看不到适配器的,是解耦的。演示/** * 适配器模式 * 1.类适配器模式 * 2.对象适配器模式...原创 2020-04-11 23:09:34 · 98 阅读 · 0 评论 -
建造者模式
简介建造者模式(BuilderPattern)又叫生成器模式,是对象构建模式类别中的一种。它是将复杂对象的建造过程抽象出来,然后通过这个抽象过程的不同实现去构造出不同表现的对象(是同一类对象只是对象的属性不同)。建造者模式是一步一步创建一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们, 用户不需要知道内部的具体构建细节。建造者模式的四个角色Product(产品角色...原创 2020-04-11 03:29:38 · 118 阅读 · 0 评论 -
原型模式
简介原型模式属于创建型模式的一种,它是指通过拷贝自己去创建一些新的对象。拷贝分为深拷贝和浅拷贝,但核心都在于重写clone方法,原型模式相比较于传统的一直new的方式复制效率上有所提升,并且有更好的扩展性。实现浅拷贝:原型中如果有引用类型,拷贝的对象和原型共享该引用类型,即在拷贝的时候在内存中并没有新创建一个引用类型对象深拷贝:原型和拷贝的对象不共享引用类型import ja...原创 2020-04-11 01:28:35 · 109 阅读 · 1 评论 -
工厂模式
概况工厂模式是创建型模式的一种,主要遵循依赖倒转原则,强调的是依赖于抽象类或者实现接口的方式去编码,在创建对象的时候,提倡将实例化的操作封装在一个工厂的方法中,而不是直接使用new关键字。工厂模式有三种,分别是简单工厂模式,工厂方法模式和抽象工厂模式。这种模式的意义主要在于解耦,以便于后期代码的维护和扩展简单工厂模式简单工厂模式的核心思想是将实例化的逻辑封装在一个类里,封装在一个类里的...原创 2020-04-09 23:13:39 · 116 阅读 · 0 评论 -
单例模式
概念原创 2020-04-09 01:31:33 · 113 阅读 · 0 评论 -
设计模式梗概
设计模式简介 1.设计模式是许多软件开发者在长时间的开发生涯中对面临的常见问题的解决方案的经验总结,代表了一种最佳实践 2.使用设计模式是为了更好的复用代码,让代码更好的被他人理解,保证代码的可...原创 2018-08-13 17:57:49 · 158 阅读 · 1 评论