设计模式
qq_35755863
这个作者很懒,什么都没留下…
展开
-
java设计模式(二):单例模式
目录一:简要说明二:饿汉式的单例1.饿汉式单例2.饿汉式单例的代码示例3.测试以及说明三:懒汉式单例1.最原始的单例模式:2.对外方法上添加同步锁:3.双重锁机制:四:静态内部类的单例1.静态内部类2.代码示例3.序列化和反序列化五:枚举的单例1.枚举单例2.示例代码一:简要说明1.单例类的实例只能有一个。 ...原创 2019-07-11 11:50:22 · 98 阅读 · 0 评论 -
java设计模式(十九):中介者模式
一:中介者模式 在java开发中,很多时候对象与对象之间会有一定关联关系,可以这么说在java开发完全独立的对象是不存在的。而在中介者模式中就是用一个专门的类来管理这些公共信息。 可以看出具体的的角色有:中介者以及各个对象(1)中介者抽象:抽象出具体的行为(2)中介...原创 2019-08-30 10:37:12 · 139 阅读 · 0 评论 -
java设计模式(十八):状态模式
一:状态模式 在java中,面向对象编程中对象的定义是具象的行为与属性的集合,也就是说一个对象实际上包含了属性和行为。在实际生产中,我们经常会遇到这样的问题,对象的行为是由对象的某一个或多个属性去管理的。最常见的例子就是流程审批:在一个流程中,流程的审核状态决定该流程是走下一步还是流程被驳回。 通过上面总结:对象的行为去匹配匹配状态。但是如果状态写死了,对于行为的扩展是很差的,那么我们...原创 2019-08-17 07:50:40 · 88 阅读 · 0 评论 -
java设计模式(十七):备忘录模式
一:备忘录模式 什么叫备忘录,我想大家都明白是吧。在源信息发生灾变的情况下,能够实现做到及时的应灾处理,那么数据还原就是关键,而还原的数据怎么来就是备忘的由来吧。在备忘录中存在这样几个角色:(1)备忘发起人:即由谁来进行备份数据(2)备忘录:即备份的数据(3)备份恢复人:即由谁来恢复备份数据二:代码解释1、备忘录发起者package test;public...原创 2019-08-16 05:11:11 · 161 阅读 · 0 评论 -
java设计模式(十六):命令模式
一:命令模式命令模式,看可以从名字看出来,就是命令。那么命令模式至少包含3个主体内容,命令发出者、命令内容,命令执行者。在官方的定义中:将一个请求封装陈一个对象,使用不同的请求对客户端进行参数化。命令模式的应用场景:(1)抽象化动作指令(2)支持操作取消命令模式的涉及的角色:(1)命令内容:包含命令接口抽象化和命令的具体实现(2)命令的发出者:命令的发出者(3)命令...原创 2019-08-15 08:11:42 · 108 阅读 · 0 评论 -
java设计模式(十五):责任链模式
一:责任链模式 首先,提出一个比较常用的场景,在spirngmvc中配置webFilter拦截器,多个拦截器时,某一个请求在进国着N多个拦截器时,至少对于请求者而言,只有在拦截之后,才知道被某一个拦截器拦截。 在责任链的官方定义中指出,对象对于下家的引用形成一个多宫功能的功能链接,而在方法未完成之前,是不知道具体的调用方法的。二:代码解析实际场景,当我们进行一个数的阶乘时,...原创 2019-08-15 06:34:48 · 150 阅读 · 0 评论 -
java设计模式(十四):迭代模式
一:迭代子模式说实话,写这篇的时候心里完全是忐忑的。因为可能到现在也不明白为什么要有迭代器模式,她和我们在jdk中的迭代模式有什么区别?或者说是为了我们去理解jdk的迭代模式么?欢迎看到这篇文章的大佬们给予指导。迭代器模式中的角色:迭代接口(Iterator):用于对于集合数据的遍历。迭代接口实现(ConcreteIterator):迭代接口的实现容器接口(Aggregate)...原创 2019-08-14 05:08:51 · 84 阅读 · 0 评论 -
java设计模式(十三):观察者模式
一:观察者模式1.引出问题 当一个系统如何去发布通知,并且及时的通知用户,通知用户并进行反馈。这里我们就引出一个新的模式:观察模式。观察者模式的结构原理图如下: 2.引出概念 从上图可以看到有以下几个概念: 主题:又叫被观察者对象,用来发布消息 订阅:又叫观察者,用来接收消息二:代码1.订阅抽象pack...原创 2019-07-29 13:14:50 · 94 阅读 · 0 评论 -
java设计模式(七):代理模式
目录一:代理模式1.引用场景2.引出概念3.代理模式二:静态代理1.抽象角色2.真实角色3.代理角色4.客户端三.动态代理实现一--jdk的动态代理1.引出场景2.引出概念3.这里依次贴出代理4.说明四:动态代理实现二--cglib1.引出问题2.引出概念3.贴出代码4.jdk动态代理和cglib动态代理的区别五:...原创 2019-07-17 12:04:58 · 151 阅读 · 0 评论 -
java设计模式(十):组合模式
一:组合模式1.引出问题 无论java中还是其他软件设计中,都会有着这样一种结构-树形结构。比如遇到最多的就是地区(地区比较复杂其中不仅涉及到简单的树结构还涉及到数据狗种比较深的左右结构的构成,在java项目中,地区的存储不是一个地区一个记录而是以上下左右节点去存储的,有兴趣的同学可以自行百度哦)等,这里我们举一个比较简单的示例。2.引出概念 在上述...原创 2019-07-19 13:37:58 · 134 阅读 · 0 评论 -
java设计模式(十二):策略模式
目录一:策略模式1.引出问题2.引出概念二:代码1.先上结构图2.策略抽象3.抽象的几个实现3.抽象实现的调用4.测试三:说明1.缺点以及解决方案一:策略模式1.引出问题 在谈策略模式,我们先来聊聊之前讲过的一个模式:抽象工厂模式。抽象工厂模式基于工厂抽象类,有多个同参数但是实现方式不同的实现类,然后根据环境不同引用不同的字类实现。如...原创 2019-07-29 02:00:27 · 216 阅读 · 0 评论 -
java设计模式(十一):享元模式
目录一:享元模式1.引出问题2.引出概念二:代码详解1.抽象类2.抽象实现类3.工厂4.测试三:说明1.代码说明2.产生的问题3.解决方案一:享元模式1.引出问题 在看完单例模式,我们知道单例模式在容器运行期间,会产生一个唯一的实例化对象,这样避免了在全局使用时产生多个相同的对象而产生资源浪费的问题。但是在实际生产中,我们需要的往...原创 2019-07-28 23:09:40 · 111 阅读 · 0 评论 -
java设计模式(九):门面模式
一:门面模式1.引出问题 我们日常工作中,这种思想贯穿生活。比如我们启动态势电脑时,我们只需要打开电脑电源键,然后就等着他自己启动吧。如下图哈哈哈,对于电脑具体部分,不太熟悉,只能作这个不恰当的例子了。但是正好符合这个思想了,我不知道台式机内部启动顺序,但是,我按下电源键,他就启动了。2.引入概念 门面模式其实是我们运用最广泛的一种模式,我们在开发对外API都是符...原创 2019-07-18 21:05:48 · 148 阅读 · 0 评论 -
java设计模式(四):原型模式
一:原型模式原型模式适用于对于一个已有的对象进行复制,复制之后在进行修改等等,在大量使用循环创建对象,并且赋值差不多的情况下该方式就体现出极大的优势来。原型模式原理还是基于java中克隆,而java中的克隆分为2种浅克隆和深克隆。浅克隆:浅克隆是指克隆了原对象的数据类型,浅克隆只适用于一些基本的数据类型。不会克隆引用的对象深克隆: 可科隆引用对象二:浅克隆解析1.只...原创 2019-07-12 11:23:24 · 99 阅读 · 0 评论 -
java设计模式(八):桥接模式
目录一:桥接模式1.问题引出2.引出概念二:代码讲解1.手机品牌的抽象以及实现2.手机软件的抽象和实现3.聚合4.测试三:说明一:桥接模式1.问题引出 现在有这么一个类叫做手机品牌,其中有这么些属性:手机品牌名称,通讯录,游戏等。那么他创建的对象就如下图所示: 如上图所示,创建了多个对象 每一个对象都至少包含着3个属...原创 2019-07-18 11:04:13 · 204 阅读 · 0 评论 -
java设计模式(六):装饰模式
目录一:装饰模式1.引出问题2.解决问题的方案3.基本概念二:代码详解1.构件或者装饰2.构建的具体化3.装饰具体化一 4.装饰具体化二5.测试 6.说明三:装饰模式的用途1.装饰模式的优点2.装饰模式的缺点3.应用场景一:装饰模式1.引出问题 在java中如果存在这样一个类,这个类存在很多属性,...原创 2019-07-15 23:01:36 · 117 阅读 · 0 评论 -
java设计模式(三):建造者模式
一:建造者模式 在一般的对象创建中,我们使用new方式去新建一个对象(调用无参构造或者有参构造方法),然后,在高级一点的技术就是使用工厂模式去创建一个对象的实现类。以工厂模式中的最优方案抽象工厂而言,其见着的对象只有我们去使用对应的子类实现才知道其创建出一个什么样的对象。 这里就有一种新的创建方式:建造者方式。其基本的流程图如下: 似乎,建造者模式对于创建一个新的对象不如...原创 2019-07-11 15:28:39 · 116 阅读 · 0 评论 -
java设计模式(五):适配器模式
目录一:适配器模式二:类适配器模式1.内部方法(有参构造法---源)2.目的(改造user的现实方法)3.适配器(继承内部方法,实现目的接口 --适配器)4.测试5.说明6.实际场景二:对象适配器模式1.适配器(其他的不变)2.测试3.类和对象适配器的比对三:接口适配器1.说明:2.目标3.抽象适配器4.具体适配器四:总结...原创 2019-07-15 18:13:46 · 117 阅读 · 0 评论 -
java设计模式(二十):解释器模式
一:解释器模式 解释器模式,就是重写或者重定义表达式比如:sum = R1 + R2这个表达式可以从明面看出求R1和R2的和。但是我们现在重写这3个元素R1,+,R2,让这三个元素具有新的定义和运算法则。 通过上面的解释,大地上有一个理解,但是在实际应用中有哪些?最常见的就是我们看到的正则表达式或者我们在代码中动态定义的自定义的拦截表达式等。 设计的主要的角色: 终结符表达...原创 2019-09-02 10:47:25 · 120 阅读 · 0 评论