设计模式
文章平均质量分 85
记录和分享设计模式有关的知识点
谁是谁的小确幸
细节决定成败!
展开
-
【设计模式系列】9.建造者模式
一、建造者模式特点属于创建型模式,是一种将 复杂对象的建造 和 它的表示 分开,使得一样的建造过程可以创造不同的表示。因此,建造对象时只需要指定建造的类型,而不需要关心内部的建造过程。 创建型模式的最大的特点就是链式调用和多变的构造方法,后面举例说明。二、建造者模式结构分析该模式有四个角色,类图如下:Product(产品类):需要被构建的复杂对象; Builder(抽象建造者):规范产品的组建,一般是由子类实现具体的过程; ConcreteBuilder(具体建造...原创 2021-05-15 23:58:58 · 165 阅读 · 1 评论 -
【设计模式系列】8.观察者模式
一、观察者模式特点定义一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己; 观察者与被观察者之间是解耦合的,观察者存在与否不会对被观察者造成影响; 观察者模式也叫发布-订阅模式,或模型-视图模式等,被广泛应用于分布式框架或者组件中,如Zookeeper中的统一配置管理;二、结构分析观察者模式下有四种角色:抽象主题角色(Subject):也叫抽象被观察者角色(Observable),会将...原创 2021-03-24 11:17:12 · 240 阅读 · 0 评论 -
【设计模式系列】7.模板模式和责任链模式
目录一、模板模式1、模板模式特点2、结构分析3、场景举例二、责任链模式1、责任链模式特点2、场景举例一、模板模式1、模板模式特点不同场景的处理流程,部分逻辑是通用的,可以放到父类中作为通用实现,而另一部分逻辑是个性化的,需要子类去个性实现; 通常情况下,模板方法模式用于定义构建某个对象的步骤与顺序,或者定义一个算法的骨架; 模板方法使用到的是Java的继承机制,经常在重构项目时用到模板模式;2、结构分析一共有两个类:一个抽象类(定义模板方法和基本方.原创 2021-03-16 15:35:19 · 1113 阅读 · 0 评论 -
【设计模式系列】6.外观模式和策略模式
目录一、外观模式1、外观模式特点2、应用举例二、策略模式1、策略模式特点2、应用举例3、Java项目中使用策略模式场景一、外观模式1、外观模式特点为系统对外提供一个统一的入口,可以对客户端隐藏子系统内部实现的细节,也降低了客户端与子系统类之间的耦合度; 例如Spring MVC中的 DispaterServlet,所有的Controller都是通过DispaterServlet统一暴露。2、应用举例场景一:比如,一个项目团队有需求人员,开发人员,测试人原创 2021-03-16 12:55:53 · 709 阅读 · 0 评论 -
【设计模式系列】5.装饰器模式和适配器模式
一、装饰器模式特点:在不改变一个对象本身功能的基础上给对象增加新的功能,即功能增强; 如Java IO中的BufferedReader类就是对InputStreamReader类的包装或增强。BufferedReader br = new BufferedReader(new InputStreamReader(System.in));举例:假如xx去4S店买了一款领克01,它拥有领克车系的所有基础功能,但01却没有LED大灯,因此花点钱可以加装一个。Demo实现...原创 2021-03-16 12:39:11 · 680 阅读 · 0 评论 -
【设计模式系列】4.代理模式
目录一、代理模式概述二、场景举例三、动态代理1、两种动态代理原理分析2、JDK动态代理Demo实现3、CGLIB动态代理Demo实现4、小结一、代理模式概述含义:为其他对象提供一种代理,以控制对这个对象的访问。特点:代理对象可以在客户端和目标对象之前起到中介的作用; 当实现类(即客户端)需要扩展其他功能时,根据开闭原则是不能修改实现类的,因此,通过代理模式添加额外的功能可以拓展实现类的功能; 代理模式可分为:静态代理和动态代理,前者在程序运行前就已经存在的编译原创 2021-03-16 11:27:05 · 141 阅读 · 0 评论 -
【设计模式系列】3.工厂模式
目录一、简单工厂模式二、工厂方法模式三、抽象工厂模式一、简单工厂模式核心思想:有一个专门的类来生产其他类的实例,生产的这些实例有一个共同父类。举例:假如有一个汽车工厂,它既可以生产宝马汽车,也可以生产奥迪汽车。代码实现:// 汽车工厂,有生产汽车的方法public class CarFactory { public Car creatCar(int num) { return num % 2 == 0 ? new BMWCar() : ne原创 2021-03-16 10:18:07 · 198 阅读 · 0 评论 -
【设计模式系列】2.单例模式
目录一、单例模式的实现方式1、饿汉式2、懒汉式3、双重检测锁式4、静态内部类5、集合容器6、枚举实现二、单例模式的相关问题1、反序列化会重新生成对象的问题?2、使用反射时会强行调用构造器实例化单例类?一、单例模式的实现方式概念:保证一个类仅有一个实例,并提供一个访问它的全局访问点,比如:线程池、缓存、对话框、注册表、日志记录等。1、饿汉式饿汉式是在jvm加载这个单例类的时候,就会初始化这个类中的实例,在使用单例中的实例时直接拿来使用就好,因原创 2021-03-16 00:50:22 · 227 阅读 · 0 评论 -
【设计模式系列】1.设计模式概述
目录一、什么是设计模式?1、概念2、六大设计原则二、设计模式有哪些优点?三、JDK中常用的设计模式概述四、常用框架有关的设计模式(重点)1、Spring框架常用的设计模式①.单例模式②.工厂模式③.模板模式④.代理模式⑤.装饰器模式⑥.适配器模式⑦.观察者模式2、Mybatis框架常用的设计模式参考一、什么是设计模式?1、概念是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结;一共有23种设计模式,总体来说可以分为三大类:创建型模式( Creational Patterns )、结原创 2021-03-16 00:33:41 · 143 阅读 · 0 评论