
设计模式
文章平均质量分 88
设计模式
李少谦
22届毕业、软件工程、Java、写代码、独立思考
展开
-
工厂+策略+模板方法+责任链设计模式实战
需求:系统之前只支持正常订单(在本系统中处理的订单),后面又有新需求,增加了分销订单(交给第三方处理的),然后之前用if-else实现了,但逻辑结构已经混乱了,扩展起来很复杂,所以使用设计模式进行重构这块代码。原创 2023-07-08 00:06:06 · 476 阅读 · 0 评论 -
模板方法模式
模板方法是一种行为设计模式,它定义了一个操作(模板方法)中的算法框架,将一些步骤(抽象方法)延迟到子类中实现。模板方法模式使得子类可以在不改变算法结构的情况下重新定义算法的某些步骤。模板方法由一个抽象类定义,其中包含了一个或多个公共方法和一个抽象方法。公共方法定义了算法的框架,包含了一系列的步骤,而抽象方法则由子类来实现,用于对算法的某个步骤进行特定的实现。抽象类:负责定义模板方法、基本方法、抽象方法。模板方法:在抽象类中定义的流程操作集合,里面有一系列流程操作和条件控制,包含基本方法和抽象方法。原创 2023-07-07 23:52:57 · 498 阅读 · 0 评论 -
【SpringBoot应用篇】SpringBoot: 事件的发布和监听
ApplicationEvent以及Listener是Spring为我们提供的一个事件监听、订阅的实现,内部实现原理是观察者设计模式,设计初衷也是为了系统业务逻辑之间的解耦,提高可扩展性以及可维护性。ApplicationEvent就是Spring的事件接口ApplicationListener就是Spring的事件监听器接口,所有的监听器都实现该接口ApplicationEventPublisher是Spring的事件发布接口,ApplicationContext实现了该接口。原创 2022-09-14 13:24:48 · 5028 阅读 · 0 评论 -
责任链模式
责任链模式(Chain of Responsibility Pattern)是一种行为型设计模式,它通过将请求的发送者和接收者解耦,使多个对象都有机会处理请求。在这个模式中,请求沿着一个处理链依次传递,直到有一个对象能够处理它为止。责任链模式的核心思想是将请求的发送者和接收者解耦,使得多个对象都有机会处理请求。在责任链模式中,请求会沿着一个处理链依次传递,每个处理者都有机会处理请求,如果一个处理者不能处理请求,则将请求传递给下一个处理者,直到有一个处理者能够处理它。原创 2023-07-04 23:53:02 · 1119 阅读 · 0 评论 -
【日常业务开发】策略+工厂模式优化 if...else判断逻辑
此处的初始化是指:所有的Bean被成功装载,后处理Bean被检测并激活,所有Singleton Bean 被预实例化,ApplicationContext容器已就绪可用。业务中经常有支付业务,项目刚开始所有业务使用支付宝支付,后面湖南地区需要使用微信支付,然后湖北又需要使用易宝支付,后期可能还有扩展。工厂类PayFactory,暴露注册bean到工厂容器Map对象方法,提供根据type类型查询bean的静态方法。Key为bean的名称、value为IPay接口对应的bean实现类。对应的业务类型不好扩展。原创 2023-01-12 17:57:44 · 1179 阅读 · 0 评论 -
创建者模式-单例模式
创建者模式-单例模式单例模式实现懒汉式,线程不安全懒汉式,线程安全饿汉式双检锁/双重校验锁(DCL,即 double-checked locking)登记式/静态内部类枚举单例模式单例模式(Singleton Pattern)是 Java 中最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。注意:1、单原创 2021-08-24 11:12:45 · 176 阅读 · 0 评论 -
设计模式-开篇
设计模式-开篇1 设计模式概述1.1 软件设计模式的产生背景1.2 软件设计模式的概念1.3 学习设计模式的必要性1.4 设计模式分类2 UML图2.1 类图概述2.2 类图的作用2.3 类图表示法2.3.1 类的表示方式2.3.2 类与类之间关系的表示方式2.3.2.1 关联关系2.3.2.2 聚合关系2.3.2.3 组合关系2.3.2.4 依赖关系2.3.2.5 继承关系2.3.2.6 实现关系3 软件设计原则3.1 开闭原则3.2 里氏代换原则3.3 依赖倒转原则3.4 接口隔离原则3.5 迪米特法则原创 2021-08-24 09:55:54 · 279 阅读 · 0 评论