设计模式
loufanghong
这个作者很懒,什么都没留下…
展开
-
单例模式
**定义:**确保一个类只有一个实例,而且自行实例化并向整个系统提供这个实例。类型:创建类模式类图:图片 1.1 singleton类图知识点:1.类图分为三部分,依次是类名、属性、方法2.以<<开头和以>>结尾的为注释信息3.修饰符+代表public,-代表private,#代表protected,什么都没有代表包可见。4.带下划线的属性或方法代表是静态...原创 2019-03-29 22:24:36 · 237 阅读 · 0 评论 -
策略模式
定义:定义一组算法,将每个算法都封装起来,并且使他们之间可以互换。类型:行为类模式类图:图片 1.15 strategy-pattern策略模式是对算法的封装,把一系列的算法分别封装到对应的类中,并且这些类实现相同的接口,相互之间可以替换。在前面说过的行为类模式中,有一种模式也是关注对算法的封装——模版方法模式,对照类图可以看到,策略模式与模版方法模式的区别仅仅是多了一个单独的封装类...原创 2019-03-30 22:55:30 · 222 阅读 · 0 评论 -
命令模式
定义:将一个请求封装成一个对象,从而让你使用不同的请求把客户端参数化,对请求排队或者记录请求日志,可以提供命令的撤销和恢复功能。类型:行为类模式类图:图片 1.13 command-pattern命令模式的结构顾名思义,命令模式就是对命令的封装,首先来看一下命令模式类图中的基本结构:• Command类:是一个抽象类,类中对需要执行的命令进行声明,一般来说要对外公布一个execut...原创 2019-03-30 22:52:46 · 211 阅读 · 0 评论 -
解释器模式
定义:给定一种语言,定义他的文法的一种表示,并定义一个解释器,该解释器使用该表示来解释语言中句子。类型:行为类模式类图:图片 1.17 interpreter-pattern解释器模式是一个比较少用的模式,本人之前也没有用过这个模式。下面我们就来一起看一下解释器模式。解释器模式的结构• 抽象解释器:声明一个所有具体表达式都要实现的抽象接口(或者抽象类),接口中主要是一个interpr...原创 2019-03-30 10:58:29 · 184 阅读 · 0 评论 -
中介者模式
定义:用一个中介者对象封装一系列的对象交互,中介者使各对象不需要显示地相互作用,从而使耦合松散,而且可以独立地改变它们之间的交互。类型:行为类模式类图:图片 1.8 mediator-pattern中介者模式的结构中介者模式又称为调停者模式,从类图中看,共分为3部分:• 抽象中介者:定义好同事类对象到中介者对象的接口,用于各个同事类之间的通信。一般包括一个或几个抽象的事件方法,并...原创 2019-03-30 10:53:04 · 166 阅读 · 0 评论 -
模板方法模式
定义:定义一个操作中算法的框架,而将一些步骤延迟到子类中,使得子类可以不改变算法的结构即可重定义该算法中的某些特定步骤。类型:行为类模式类图:图片 1.7 template-method-pattern事实上,模版方法是编程中一个经常用到的模式。先来看一个例子,某日,程序员A拿到一个任务:给定一个整数数组,把数组中的数由小到大排序,然后把排序之后的结果打印出来。经过分析之后,这个任务...原创 2019-03-30 10:40:44 · 232 阅读 · 0 评论 -
原型模式
定义:用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。类型:创建类模式类图:图片 1.6 builder-pattern原型模式主要用于对象的复制,它的核心是就是类图中的原型类Prototype。Prototype类需要具备以下两个条件:• 实现Cloneable接口。在java语言有一个Cloneable接口,它的作用只有一个,就是在运行时通知虚拟机可以安全地在实现...原创 2019-03-30 10:35:25 · 253 阅读 · 0 评论 -
建造者模式
定义:将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。类型:创建类模式类图:图片 1.5 builder-pattern四个要素• 产品类:一般是一个较为复杂的对象,也就是说创建对象的过程比较复杂,一般会有比较多的代码量。在本类图中,产品类是一个具体的类,而非抽象类。实际编程中,产品类可以是由一个抽象类与它的不同实现组成,也可以是由多个抽象类与他们的实现组...原创 2019-03-30 10:28:40 · 153 阅读 · 0 评论 -
抽象工厂模式
定义:为创建一组相关或相互依赖的对象提供一个接口,而且无需指定他们的具体类。类型:创建类模式类图:图片 1.3 abstract-factory-pattern抽象工厂模式与工厂方法模式的区别抽象工厂模式是工厂方法模式的升级版本,他用来创建一组相关或者相互依赖的对象。他与工厂方法模式的区别就在于,工厂方法模式针对的是一个产品等级结构;而抽象工厂模式则是针对的多个产品等级结构。在编程...原创 2019-03-30 10:25:18 · 158 阅读 · 0 评论 -
迭代模式
定义:提供一种方法访问一个容器对象中各个元素,而又不暴露该对象的内部细节。类型:行为类模式类图:图片 1.16 iterator-pattern如果要问java中使用最多的一种模式,答案不是单例模式,也不是工厂模式,更不是策略模式,而是迭代器模式,先来看一段代码吧:public static void print(Collection coll){Iterator it = col...原创 2019-03-29 22:33:08 · 578 阅读 · 0 评论 -
工厂方法模式
定义:定义一个用于创建对象的接口,让子类决定实例化哪一个类,工厂方法使一个类的实例化延迟到其子类。类型:创建类模式类图:!图片 1.2 factory工厂方法模式代码interface IProduct {public void productMethod();}class Product implements IProduct {public void productMeth...原创 2019-03-29 22:27:14 · 165 阅读 · 0 评论 -
责任连模式
定义:使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。类型:行为类模式类图:图片 1.14 command-pattern首先来看一段代码:public void test(int i, Request request){if(i==1){Handler1.response(reques...原创 2019-04-01 22:28:56 · 210 阅读 · 0 评论