设计模式
吐蕃圣僧
能和我打成平手的,天底下没有几个!!
展开
-
java设计模式之单例
1,为什么需要单例设计模式单例模式与工具类提到单例设计模式就不得不提工具类了,在网上有许多关于它们的说法,这些我指出本人自己的看法,如有不对,请指出,我觉得从核心的角度来说,单例工具类的区别在于:单例是容器的思想,这个对象维护了一些自己的属性,比如:Runtime类维护系统运行的状态和属性,线程池维护了自己的属性,强调的是自己本身。我们会关注系统运行的参数,也会关注线程池中有多少个线程.工具类强调原创 2017-12-14 16:41:29 · 167 阅读 · 0 评论 -
java设计模式之模版方法
一.简介 我们往往遇见一些问题我们知道它的解决流程,或者说是大概的思路,但是我们不知道它的具体的实现.就像我们的tomcat针对发起的http请求,它知道请求的流程,但是不知道具体逻辑和返回数据,这样我们继承了它的httpservlet类,实现它们的doget方法和dopost方法.实现我们需要实现的具体细节.二.结构抽象模版类:定义一个或者多个抽象方法,这些方法称为基本操作,原创 2018-01-20 10:47:28 · 144 阅读 · 0 评论 -
java设计模式之备忘录
一.简介 话说,我小时候玩小霸王游戏中坦克大战的闯关游戏中,哪个时候我们基本上每次过了一关都会保存进度,如果不玩了,或者是下一关太难过了每过了,这样我们就可以回到原先的时候,回到原先的进度继续游戏.这样我们就回到过去了.二.结构备忘录(Memento)角色:备忘录角色存储"备忘发起者角色"的内部状态;在黑箱和自述历史模式的情况下,不允许除了发起人之外的人访问自己.备忘发起者角色:创建一个备忘录,在原创 2018-01-19 16:28:03 · 518 阅读 · 0 评论 -
java设计模式之迭代器
一.简介在我们使用的jdk的api中有着大量的集合容器,而这些容器需要一个统一的遍历方式,这个遍历方式就是实现iterable接口,这个接口获取一个迭代器.这个迭代器有统一的遍历方法.至于每个容器他们的具体实现细节由各个集合自己去实现.二.结构迭代器角色:定义可以对容器进行迭代的抽象方法;具体迭代角色:一般存在于容器内部,它由容器来产生;抽象容器角色:定义了获取迭代器角色的接口,并且有容器自己的属...原创 2018-02-02 11:00:32 · 160 阅读 · 0 评论 -
java设计模式之装饰器
一.简介普通班的学生在上课的时候是听课,而小班的学生在上课的之前会预习,下课之后会复习,他们相当于普通学生的加强版.我们可以选择使用继承来实现他们的关系,但是这并不复合继承的思想,超级班的学生并不是普通班的学生中的一员.我们选择使用装饰器模式,使用一个新类,在这个类中引入我们需要加强的类(被装饰者),这样我们对它原先的方法进行重写.这样的好处在于我们并不需要维护复杂的继承关系.二.结构被装饰对象:...原创 2018-02-01 16:10:49 · 173 阅读 · 0 评论 -
java设计模式之原型
一.介绍 原型模式:就是允许一个对象可以创建另外一个可以定制的对象,根本无需直到任何创建对象的细节,工作原理是:通过将一个原型对象传给另外一个发动创建的对象,这个发送创建的对象通过请求原型对象拷贝它们自己来创建. 在使用了java的clone()方法之后,也就是自己传给自己,自己调用自己,自己复制一个自己 类图 二.代码public class MainTest { public st原创 2018-01-18 11:08:10 · 174 阅读 · 0 评论 -
java设计模式之命令
一.简介我们在给使用遥控器给控制电视的时候,这种方式正符合了我们java中的命令设计模式,我们自己就是客户端,电视代表了接收者,它会执行具体的动作,整个遥控器是调用者,具体按键开机,关机,变化频道是具体的命令类.二.结构抽象命令角色:它定义了具体命令者的统一的接口,该接口中的方法由调用者来统一调用.具体命令角色:实现了抽象命令角色,引入了接收者,使用接收者做具体的命令操作.抽象原创 2018-01-31 16:10:39 · 136 阅读 · 0 评论 -
java设计模式之抽象工厂
一.构成抽象工厂角色:抽象工厂模式的核心,定义了产品的创建,并且它与具体的业务逻辑没有关系;具体工厂角色:实现了抽象工厂角色的实体类,每一个具体工厂负责一个产品系列的创建.每添加一个系列的产品,就相应的需要添加一个具体工厂角色,客户端需要选择具体的工厂角色对应它们具体的业务逻辑----也就是所需要的产品;抽象产品角色:抽象工厂模式所创建的类的父类,担任这个角色的类往往是抽象类,或者是接原创 2018-01-15 10:32:08 · 175 阅读 · 0 评论 -
java设计模式之工厂方法
一.工厂方法构成抽象工厂角色(简单工厂中不需要):工厂方法法模式的核心,与应用程序无关,任何在模式内创建对象的工厂类必须实现的接口;具体工厂角色:实现抽象工厂角色的类,负责对象的具体创建的逻辑,应用程序调用具体执行的逻辑;抽象产品:产品的超类型接口,也是工厂方法模式所接收到的创建对象的类型;具体产品角色:实现了抽象产品定义的接口,具体产品与具体工厂相对应类图原创 2018-01-14 22:43:24 · 191 阅读 · 0 评论 -
java设计模式之生成器
一.概述当我们需要一架飞机时,它们的组成有内部极其复杂的逻辑.部件的构成不是直接内部一个单位完成,而是由多个厂家来完成.我们在完成.概念:当创建复杂对象的算法应该独立于该对象的组成部分以及它们的装配方式时,当构造过程允许被构造的对象有不同的标识时.这种方式我们称为生成器模式.简单而言,它有点类似工厂模式,他的目的是为了分离复杂对象的构建与它的表示相分离.二.为什么需要生原创 2018-01-12 18:04:40 · 157 阅读 · 0 评论 -
java设计模式之享元设计模式
一.构成单纯享元模式抽象享元角色:定义了公共的接口,所有的具体享元角色需要实现的接口,那些需要外蕴状态的操作可以通过方法的参数传入.具体享元角色:实现抽线享元角色所规定的公共接口,如果有内蕴状态的话必须负责为内蕴状态提供存储空间.享元内蕴状态的属性必须与对象所处的环境无关,也就是说内蕴状态是不可以变化的.从而使得享元对象可以在系统中公用.享元工厂角色:负责创建和管理享元角色,必须保原创 2018-01-11 22:39:24 · 177 阅读 · 1 评论 -
java设计模式之代理
一.组成部分抽象角色(cglib子类代理中不需要);为代理者和真实角色提供公共的接口;代理角色,代理角色内部包含了对真实角色的引用,而它们实现同样的接口,往往可以完全替代真实角色,并且在调用真实角色的方法时可以做前置和后置的处理.真实角色:代理角色所代表的真实对象.是我们最终需要使用的对象.二.代码a.静态代理class MainTest {原创 2018-01-11 16:49:27 · 129 阅读 · 0 评论