随笔分类 -  设计模式

设计模式
设计模式 之 桥梁模式(抽象和实现解耦)
摘要:定义: 将抽象和实现解耦,是两者可以独立的变化。 大家看看这个类图,很简单吧。我们根据这个类图来实现一下: 完全根据类图设计: 看下结果 认真理解一下概念,抽象和实现解耦,两者可以随意变化。中间就是架设一层维护接口的抽象类,后进行相关实现,也可以自己的! 阅读全文
posted @ 2020-04-16 15:23 Jason_LZP 阅读(238) 评论(0) 推荐(0)
设计模式 之 备忘录模式(备份)
摘要:定义: 内部状态的保留回复,我们需要发起备份类的请求。 所以,需要被分类: 内部设计有一个state状态属性,在备忘录模式中,需要原角色发起备份请求: 维护备份类角色类: 我们来测一下: 阅读全文
posted @ 2020-04-16 09:56 Jason_LZP 阅读(164) 评论(0) 推荐(0)
设计模式 之 门面模式(画地为牢)
摘要:定义: 我们需要子系统,然后通过统一的对象进行访问即可。 门面类来了,很鸡肋! 门面 模式 最大 的 缺点 就是 不符合 开闭 原则, 对 修改 关闭, 对 扩展 开放, 总体用途不多,根据具体业务来定 阅读全文
posted @ 2020-04-15 17:36 Jason_LZP 阅读(110) 评论(0) 推荐(0)
设计模式 之 组合模式(组织架构树)
摘要:定义: 其实就是树结构的基本实现,类似于组织架构。 这里就是记住在类中保留父节点,具体类中add子节点的时候,保留自身父节点。一切往树上靠! 阅读全文
posted @ 2020-04-15 16:04 Jason_LZP 阅读(469) 评论(0) 推荐(0)
设计模式 之 迭代器模式(没落中找生存)
摘要:定义: 如果你是做Java开发, 尽量不要自己写迭代器模式! 省省吧, 使用 Java 提供 的 Iterator 一般就能满足你的要求了。 这里就不写样例了。 阅读全文
posted @ 2020-04-15 15:14 Jason_LZP 阅读(124) 评论(0) 推荐(0)
设计模式 之 适配器模式(面对需求变化,中转站)
摘要:定义: 其实就是当你开发完之后,需求变了,现在需要把新需求嵌入到之前的需求中,中间架设一个adapter即可。 包含,目标角色,适配器,源角色 其实适配器模式可以很复杂的,这里介绍一个很简单的。 目标对象,一般是接口或者抽象类派生的。 源对象,已经实现好的,但是要嵌入到目标对象中。 现在需要一个适配 阅读全文
posted @ 2020-04-15 14:08 Jason_LZP 阅读(159) 评论(0) 推荐(0)
设计模式 之 策略模式(刘备乐不思蜀,三个锦囊妙计)
摘要:定义: 这里先说好,策略模式跟代理模式很像,这里代码贴完后,大家参考一下,对比一下,区别在哪里。 我们需要一个策略,一般是一个接口或者抽象类。 策略可以有多个实现: 多个实现 可以互换,这是定义讲的。 我们现在需要一个策略类, 在这里就是跟代理模式不一样了,构造方法都是传相应对象进来,但是Conte 阅读全文
posted @ 2020-04-14 16:16 Jason_LZP 阅读(209) 评论(0) 推荐(0)
设计模式 之 装饰者模式(对方法扩展)
摘要:定义: 对 对象进行扩展。 我们需要一个基本需要被扩展的类。 对抽象类进行实现: 一般来说,都是抽象类,或者接口先写,说白了离开了接口或者抽象类的形式,就不存在java语言的设计模式了! 被装饰类我们写好了,我们现在需要一个装饰类。 修饰类有多种,对方法扩展可能又多种,根据具体业务来,如果只有一种, 阅读全文
posted @ 2020-04-14 11:52 Jason_LZP 阅读(253) 评论(0) 推荐(0)
设计模式 之 责任链模式(保留下一个操作)
摘要:概念: 初看这一个定义,感觉有点无奈?请求者跟接受者的耦合关系。其实就是请求跟处理结果分开! 看明白没有?其实就是handler确定自己的下个节点,确认返回值。 我们按照责任制的规则,定义一个责任类 每一个责任类都定义下一个节点的操作,有节点的操作的话,就定义下一个操作方法,我这里写的很简单,具体应 阅读全文
posted @ 2020-04-13 17:41 Jason_LZP 阅读(218) 评论(0) 推荐(0)
设计模式 之 命令者模式(Invoker 冤大头)
摘要:概念: 如果存在多个请求,我们需要一个“头目”去接受请求,参数化管理,以达到不同的业务逻辑。高内聚其实就是内部封装比较完整,根据不同参数去执行不同操作。 多个业务,每个业务都有不同的执行人,要是项目忙碌起来,我们肯定是想我们制定一个带头大哥去对接需求方,然后通过内部自己消化,自己去实现新需求,没必要 阅读全文
posted @ 2020-04-10 17:55 Jason_LZP 阅读(814) 评论(0) 推荐(0)
设计模式 之 中介者模式(没事找中介帮忙)
摘要:中介者模式概念: 对象交互简单的话,其实没必要,但是如果很复杂的交互,设计到多个业务之间的多个循环往复,那就需要使用了,类似于我们的房屋中介,媒体网关等等,其实就是中介者模式的雏形。 对象交互,一般都是相关系的,所以我们这里建立一个抽象类: Midetor是什么?别急,是中介抽象类,我们现在就来看看 阅读全文
posted @ 2020-04-10 16:40 Jason_LZP 阅读(159) 评论(0) 推荐(0)
设计模式 之 原型模式(复制copy)
摘要:先看原型模式定义: 关键词:拷贝 在Java语言环境中,本省就有clone 拷贝方法,所以在原型模式中,就是利用clone,复制对象,生产新的对象。 实现cloneable接口,对clone方法进行重写。 这就是原型模式。 比如说发邮件,一次性发大量的邮件,邮件地址,邮件内容都不一样。那么没必要每次 阅读全文
posted @ 2020-04-10 14:32 Jason_LZP 阅读(307) 评论(0) 推荐(0)
设计模式 之 代理模式(律师,全权代理)
摘要:代理模式,也叫委托模式。 看下定义: (2020-04-10 9:26记) 是不是很像一种场景:打官司的时候,被告或者原告不愿意出庭,请律师嘛!律师到场代表我出庭,帮我进行辩护。 所以,我们这里设计一个事发案件(接口或者抽象类): 案件有两个case A 和B 实现类: 重点看构方法,要代理的话可以 阅读全文
posted @ 2020-04-10 11:02 Jason_LZP 阅读(170) 评论(0) 推荐(0)
设计模式 之 建造者模式(和久必分)
摘要:建造者模式也叫生成器模式 (2020-04-09 14:32记) 上篇写了模板模式的构造,既定顺序或者说既定的算法,我们放到抽象父类当中去。但是现实生活却不是这样的,因为“变化,一直都在”,就跟这个世界一样。充满着变化! 假设一个产品,按照模板模式,先调用A,再调用B,完事了。但是用户不想要了,先掉 阅读全文
posted @ 2020-04-09 14:32 Jason_LZP 阅读(151) 评论(0) 推荐(0)
设计模式 之 模板方法(分久必和)
摘要:看下模板方法模式的概念: (2020-04-09 10:08记) 其实模板模式相对于前面介绍的要简单很多,父类就是模板,子类按照我定义的模板规则(也叫算法来执行就可以). 首先,我们需要一个模板类,是一个抽象类,其中包含基本方法,基本方法是有子类去实现的,还有模板方法,是定义规则的,一般由父类定义好 阅读全文
posted @ 2020-04-09 10:09 Jason_LZP 阅读(105) 评论(0) 推荐(0)
设计模式 之 观察者模式(间谍)
摘要:在介绍spring 监听事件都时候说了观察者模式,那么现在我们来讲讲观察者模式,也叫做发布订阅模式! (2020-04-07 ) 明天补充。 (2020-04-08) 首先,我们看下观察者模式都概念: 定义一对多都关系,当对象进行动作的时候,那个“多”,也会相应得回馈,这就是观察者模式,有点类似于间 阅读全文
posted @ 2020-04-07 22:24 Jason_LZP 阅读(152) 评论(0) 推荐(0)
设计模式之抽象工厂模式
摘要:按照之前都尿性,我们来看下抽象工厂模式都定义: 为了满足相关或者相互依赖的关系,我们都采用抽象类,其中有公共方法去实现,有abstract修饰都需要不同方法实现的对象关系。 我们建立两个相关产品 A和B。 对于两个产品,进行分别实现。 对象实现也有了,看到概念,为创建相互依赖对象提供接口,无需指定具 阅读全文
posted @ 2020-04-06 23:00 Jason_LZP 阅读(123) 评论(0) 推荐(0)
设计模式之工厂模式
摘要:我们先来看下工厂模式的定义:以下文字或者代码都以截图都形式存在,你们别copy代码,重要都逻辑还是要自己敲一遍才行。 就是这么简单,那我们怎么实现呢。看代码! 首先,我们定义产品抽象类,具体产品根据抽象类来实现。 ok 产品有了,我们来理理工厂模式都那句话。定义一个创建对象都接口,让子类去决定实现哪 阅读全文
posted @ 2020-03-23 23:11 Jason_LZP 阅读(102) 评论(0) 推荐(0)