设计模式
文章平均质量分 74
月屯
学会做夜空中那颗最亮的星
展开
-
职责链模式的介绍
基本介绍职责链模式(Chain of Responsibility Pattern), 又叫 责任链模式,为请求创建了一个接收者对象的链(简单示意图)。这种模式对请求的发送者和接收者进行解耦。职责链模式通常每个接收者都包含对另一个接收者的引用。如果一个对象不能处理该请求,那么它会把相同的请求传给下一个接收者,依此类推。这种类型的设计模式属于行为型模式职责链模式(Chain Of Res...原创 2020-05-07 21:41:32 · 137 阅读 · 0 评论 -
策略模式的介绍
基本介绍策略模式(Strategy Pattern)中,定义算法族,分别封装起来,让他们之间可以互相替换,此模式让算法的变化独立于使用算法的客户这算法体现了几个设计原则,第一、把变化的代码从不变的代码中分离出来;第二、针对接口编程而不是具体类(定义了策略接口);第三、多用组合/聚合,少用继承(客户通过组合方式使用策略)原理说明:从上图可以看到,客户context 有成员变量strate...原创 2020-05-07 18:38:29 · 251 阅读 · 0 评论 -
状态模式的介绍
基本介绍状态模式(State Pattern):它主要用来解决对象在多种状态转换时,需要对外输出不同的行为的问题。状态和行为是一一对应的,状态之间可以相互转换当一个对象的内在状态改变时,允许改变其行为,这个对象看起来像是改变了其类...原创 2020-05-07 15:51:27 · 259 阅读 · 0 评论 -
解析器模式的介绍
基本介绍在编译原理中,一个算术表达式通过词法分析器形成词法单元,而后这些词法单元再通过语法分析器构建语法分析树,最终形成一颗抽象的语法分析树。这里的词法分析器和语法分析器都可以看做是解释器解释器模式(Interpreter Pattern):是指给定一个语言(表达式),定义它的文法的一种表示,并定义一个解释器,使用该解释器来解释语言中的句子(表达式)应用场景• 应用可以将一个需要解释执行...原创 2020-05-06 21:46:03 · 230 阅读 · 0 评论 -
备忘录模式的介绍
public class Memento { private String state; //构造器 public Memento(String state) { super(); this.state = state; } public String getState() { return state; } }public class Originato...原创 2020-05-06 13:52:00 · 318 阅读 · 0 评论 -
中介者模式的介绍
基本介绍中介者模式(Mediator Pattern),用一个中介对象来封装一系列的对象交互。中介者使各个对象不需要显式地相互引用,从而使其耦合松散,而且可以独立地改变它们之间的交互中介者模式属于行为型模式,使代码易于维护比如MVC模式,C(Controller控制器)是M(Model模型)和V(View视图)的中介者,在前后端交互时起到了中间人的作用原理类图...原创 2020-05-06 09:11:54 · 434 阅读 · 0 评论 -
观察者模式的介绍
观察者模式原理 观察者模式类似订牛奶业务奶站/气象局:Subject用户/第三方网站:Observer Subject:登记注册、移除和通知registerObserver 注册removeObserver 移除notifyObservers() 通知所有的注册的用户,根据不同需求,可以是更新数据,让用户来取,也可能是实施推送,看具体需求定Observer:接收输入 观察...原创 2020-05-04 15:31:56 · 109 阅读 · 0 评论 -
迭代器模式的介绍
基本介绍迭代器模式(Iterator Pattern)是常用的设计模式,属于行为型模式如果我们的集合元素是用不同的方式实现的,有数组,还有java的集合类,或者还有其他方式,当客户端要遍历这些集合元素的时候就要使用多种遍历方式,而且还会暴露元素的内部结构,可以考虑使用迭代器模式解决。迭代器模式,提供一种**遍历集合元素的统一接口,**用一致的方法遍历集合元素,不需要知道集合对象的底层表示,...原创 2020-05-04 12:09:20 · 191 阅读 · 0 评论 -
访问者的介绍
访问者模式基本介绍访问者模式(Visitor Pattern),封装一些作用于某种数据结构的各元素的操作,它可以在不改变数据结构的前提下定义作用于这些元素的新的操作。主要将数据结构与数据操作分离,解决 数据结构和操作耦合性问题访问者模式的基本工作原理是:在被访问的类里面加一个对外提供接待访问者的接口访问者模式主要应用场景是:需要对一个对象结构中的对象进行很多不同操作(这些操作彼此没有关联...原创 2020-05-04 08:17:40 · 778 阅读 · 0 评论 -
模板方法模式的介绍
基本介绍模板方法模式(Template Method Pattern),又叫模板模式(Template Pattern),z在一个抽象类公开定义了执行它的方法的模板。它的子类可以按需要重写方法实现,但调用将以抽象类中定义的方式进行。简单说,模板方法模式 定义一个操作中的算法的骨架,而将一些步骤延迟到子类中,使得子类可以不改变一个算法的结构,就可以重定义该算法的某些特定步骤这种类型的设计模...原创 2020-05-02 18:16:49 · 276 阅读 · 0 评论 -
代理模式的介绍
代理模式的基本介绍1)代理模式:为一个对象提供- 一个替身,以控制对这个对象的访问。即通过代理对象访问目标对象.这样做的好处是:可以在目标对象实现的基础上,增强额外的功能操作,即扩展目标对象的功能。2)被代理的对象可以是远程对象、创建开销大的对象或需要安全控制的对象3)代理模式有不同的形式,主要有三种静态代理、动态代理(JDK代理、接口代理)和Cglib代理(可以在内存动态的创建对象,而不需...原创 2020-04-30 23:40:49 · 366 阅读 · 1 评论 -
享元模式的介绍
基本介绍1)享元模式(Flyweight Pattern)也叫蝇量模式:运用共享技术有效地支持大量细粒度的对象2)常用于系统底层开发,解决系统的性能问题。像数据库连接池,里面都是创建好的连接对象,在这些连接对象中有我们需要的则直接拿来用,避免重新创建,如果没有我们需要的,则创建-一个3)享元模式能够解决重复对象的内存浪费的问题,当系统中有大量相似对象,需要缓冲池时。不需总是创建新对象,可以从...原创 2020-04-29 21:56:10 · 306 阅读 · 0 评论 -
外观模式的介绍
基本介绍1)外观模式(Facade) ,也叫“过程模式:外观模式为子系统中的- -组接口提供一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加容易使用2)外观模式通过定义一个-致的接口,用以屏蔽内部子系统的细节,使得调用端只需跟这个接口发生调用,而无需关心这个子系统的内部细节原理类图的说明(外观模式的角色)1)外观类(F acade) :为调用端提供统一的调用接口,外观类...原创 2020-04-28 22:00:00 · 445 阅读 · 0 评论 -
组合模式的介绍
基本介绍1)组合模式(Composite Pattern),又叫部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体-部分”的层次关系。2)组合模式依据树形结构来组合对象,用来表示部分以及整体层次。3)这种类型的设计模式属于结构型模式。4) 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象原理对原理结构图的...原创 2020-04-27 22:09:47 · 782 阅读 · 0 评论 -
装饰模式的介绍
装饰者模式定义1)装饰者模式:动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp)2)这里提到的动态的将新功能附加到对象和ocp原则...原创 2020-04-27 20:01:26 · 239 阅读 · 0 评论 -
桥接模式的介绍
基本介绍1)桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变。2)是一种结构型设计模式3) Bridge模式基于类的最小设计原则,通过使用封装、聚合及继承等行为让不同的类承担不同的职责。它的主要特点是把抽象(Abstraction)与行为实现(Implementation)分离开来,从而可以保持各部分的独立性以及应对他们的功能扩展背景类图:...原创 2020-04-26 21:13:25 · 2269 阅读 · 0 评论 -
适配器模式的介绍
基本介绍1)适配器模式(Adapter Patterm)将某个类的按口转换成客户端期望的另一个接口表示,主的目的是兼容性让原本因接口不匹配不能-起工作的两个类可以协同工作。其别名为包装器(Wrapper)2)适配器模式属于结构型模式3)主要分为三类:类适配器模式、对象适配器模式、接口适配器模式工作原理1)适配器模式:将 一个类的接口特換成另一个接ロ.使原本接ロ不兼容的类可以兼容2)从用...原创 2020-04-26 19:51:55 · 213 阅读 · 0 评论 -
建造者模式的介绍
基本介绍1)建造者模式(Builder Pattern)又叫生成器模式,是一种对象构建模式。它可以将复杂对象的建造过程抽象出来(抽象类别),使这个抽象过程的不同实现方法可以构造出不同表现(属性)的对象。2)建造者模式是- -步一步创建-一个复杂的对象,它允许用户只通过指定复杂对象的类型和内容就可以构建它们,用户不需要知道内部的具体构建细节。建造者模式的四个角色Product (产品角色)...原创 2020-04-24 17:40:11 · 241 阅读 · 0 评论 -
原型模式之深拷贝
原型模式基本介紹原型模式(Prototype模式)是指: 用原型实力指定创建对象的种类,并且通过拷贝这些原型,创建新的対象2)原型模式是一神创建型设计模式,允许一个対象再创建另外一个可定制的対象,无需知道如何创建的细节3)工作原理是:通过将一个原型対象传给那个要发动创建的対象,这个要发动创建的対象通过请求原型対象拷贝他们自己来实施创建,即対象.clone()4)形象的理解:孙猴子拔猴毛,...原创 2020-04-24 15:59:08 · 567 阅读 · 0 评论 -
抽象工厂模式介绍
基本介紹1)抽象工厂模式:定义了一个interface用于创建相关或有依赖关系的対象簇,而无需指明具体的类2)抽象エ厂模式可以将简单エ厂模式和エ厂方法模式进行整合.3)从设计层面看,抽象エ厂模式就是对简单エ厂模式的改进(或者称为进一步的抽象)。4)将工厂抽象成两层,AbsFactory(抽象エ厂)和具体实现的エ厂子类。程序員可以根据创建対象类型使用对应的工厂子类.这样将单个的简单工厂类型变...原创 2020-04-23 20:50:47 · 300 阅读 · 1 评论 -
工厂方法模式的使用
public abstract class mianbao{ public abstract void zhizuo();}public class beijingmianbao1 extends mianbao{ @Override public void zhizuo() { // TODO Auto-generated method stub System.out.pri...原创 2020-04-23 18:24:54 · 237 阅读 · 0 评论 -
简单工厂模式的使用
这里只是代码片段public abstract class mianbao{ public abstract void zhizuo();}public class mianbao1 extends mianbao{ @Override public void zhizuo() { // TODO Auto-generated method stub System.out.p...原创 2020-04-22 19:47:33 · 192 阅读 · 0 评论 -
单例模式的几种写法以及注意事项
1.饿汉式(静态变量)//饿汉式(静态变量)class single1{ //私有化构造器,外部不能 new private single1(){} //本部内部创建对象实例 private final static single1 a=new single1(); //提供一个共有静态方法,返回实例对象 public static single1 getA() { retur...原创 2020-04-22 16:19:16 · 718 阅读 · 0 评论 -
设计模式原则的介绍
单一职责原则、接口隔离原则、依赖倒置原则、里氏替换原则、开闭原则、迪米特法则、合成复用原则原创 2020-04-18 22:58:24 · 207 阅读 · 0 评论