设计模式
文章平均质量分 54
朝花不迟暮
这个作者很懒,什么都没留下…
展开
-
关于非Spring环境下策略模式自动匹配策略的方式
最近做报文解析,不同交换机不同格式,大概有一百台交换机,我想解析用策略模式来写解析模板的方法的,但是写的时候发现,要先根据报文来决定用哪个实现类,这很麻烦。所以我就想用反射获取接口的所有实现类,先用实现类里面的校验方法,走都一边,哪个返回true了,就终止把他来出来,让他执行里面的解析。原创 2022-10-31 22:35:54 · 264 阅读 · 1 评论 -
设计模式之外观模式
目录外观模式基本介绍示例小结 外观模式基本介绍 外观模式(Facade),也叫过程模式,外观模式为子系统中的一组接口提供 一个一致的界面,此模式定义了一个高层接口,这个接口使得这一子系统更加 容易使用; 外观模式通过定义一个一致的接口,用以屏蔽内部子系统的细节,使得调用端 只需跟这个接口发生调用,而无需关心这个子系统的内部细节 示例 影院例子 package com.lesson11.waiguan; /** * @author 朝花不迟暮 * @version 1.0 * @date 2020原创 2020-09-02 20:06:56 · 138 阅读 · 0 评论 -
设计模式之组合模式
目录组合模式基本介绍示例小结 组合模式基本介绍 组合模式(Composite Pattern),又明部分整体模式,它创建了对象组的树形结构,将对象组合成树状结构以表示“整体部分”的层次关系; 组合模式依据树形结构来组合对象,用来表示部分以及整体层次; 这种类型的设计模式属于结构型模式; 组合模式使得用户对单个对象和组合对象的访问具有一致性,即:组合能让客户以一致的方式处理个别对象以及组合对象 示例 package com.lesson10.composite; /** * @author 朝花不迟暮原创 2020-09-02 20:05:04 · 139 阅读 · 0 评论 -
设计模式之装饰者模式
这里写目录标题装饰者模式定义咖啡案例 装饰者模式定义 装饰者模式动态的将新功能附加到对象上。在对象功能扩展方面,它比继承更有弹性,装饰者模式也体现了开闭原则(ocp); 咖啡案例 package com.lesson9.decorator; /** * @author 朝花不迟暮 * @version 1.0 * @date 2020/8/31 9:03 */ public abstract class Drink { public String desc; private f原创 2020-09-02 20:02:59 · 89 阅读 · 0 评论 -
设计模式之桥接模式
目录传统方案解决手机操作问题桥接模式基本介绍适用场景小结 传统方案解决手机操作问题 扩展性问题(类爆炸),如果我们再增加手机的样式(旋转式),就需要增加各个品牌手机的类,同样如果我们增加一个手机品牌,也要在各个手机样式类下增加; 违反了单一职责原则,当我们增加手机样式时,要同时增加所有品牌的手机,这样增加了代码维护成本; 解决方案:使用桥接模式 桥接模式基本介绍 桥接模式(Bridge模式)是指:将实现与抽象放在两个不同的类层次中,使两个层次可以独立改变; 是一种结构型设计模式; Bridge模 式基原创 2020-09-02 20:00:29 · 117 阅读 · 0 评论 -
设计模式之适配器模式
目录适配器模式基本介绍适配器模式工作原理类适配器模式对象适配器模式接口适配器模式小结 适配器模式基本介绍 适配器模式(Adapter Patterm)将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper,是不是很眼熟?Mybatis-Plus就有很多这个类); 适配器模式属于结构型模式; 主要分为三类:类适配器模式、对象适配器模式、接口适配器模式 举一个生活上的例子就是手机插耳机的时候,你的手机孔是Type原创 2020-08-29 20:51:28 · 176 阅读 · 0 评论 -
设计模式之建造者模式
目录传统方式建房问题建造者模式基本介绍建造者模式改进抽象工厂模式VS建造者模式小结 传统方式建房问题 需要建房子:这一过程为打桩、砌墙、封顶; 房子有各种各样的,比如普通房,高楼,别墅,各种房子的过程虽然一样,但是要求不要相同的; 首先写一个建造的抽象类 package com.lesson6.builder; /** * @author 朝花不迟暮 * @version 1.0 * @date 2020/8/28 21:03 */ public abstract class Abstract原创 2020-08-29 19:14:18 · 114 阅读 · 0 评论 -
设计模式之原型模式
目录传统方式解决克隆羊问题原型模式基本介绍深拷贝与浅拷贝小结 传统方式解决克隆羊问题 传统方式的优缺点 优点是比较好理解,简单易操作。 在创建新的对象时,总是需要重新获取原始对象的属性,如果创建的对象比较复杂时,效率较低 总是需要重新初始化对象,而不是动态地获得对象运行时的状态,不够灵活 思路: Java中Object类 是所有类的根类,Object类提供 了一个clone()方法,该方法可以 将一个Java对象复制一份, 但是需要实现clone的Java类必须要实现一个接口Cloneable, 该接口原创 2020-08-28 19:35:30 · 123 阅读 · 0 评论 -
设计模式之工厂模式
目录工厂模式介绍举例简单工厂模式工厂方法模式抽象工厂模式小结 工厂模式介绍 工厂模式属于设计模式中的创建型模式。工厂模式提供了一种最佳的创建对象的方式。工厂模式从简单到复杂有三种:简单工厂、工厂方法、抽象工厂。 举例 从一个奶酪的制作到订购的例子开始分析,我们需要集成披萨制作流程,并且声明出披萨的种类。然后再有订购的流程,先写一个不使用设计模式的例子。 package com.lesson4.factory.pizzastore.pizza; /** * @author 朝花不迟暮 * @versio原创 2020-08-27 21:52:04 · 124 阅读 · 0 评论 -
设计模式之单例模式
饿汉式 作用:保证一个类只有一个实例并且提供一个访问该实例的全局访问点 特点: 线程安全,比较常用,但容易产生垃圾,因为一开始就初始化 public class HungaryMan { //1.私有化构造器,如果不私有外面就可以new出多个对象 private HungaryMan() { } //2.类初始化的时候就立即加载该对象 priva...原创 2020-02-19 23:31:36 · 122 阅读 · 0 评论