随笔分类 -  设计模式

设计模式
摘要:一、外观模式简介外观模式(Facade)隐藏系统的复杂性,并向客户端提供了一个客户端可以访问系统的接口。这种类型的设计模式属于结构型模式,它向现有的系统添加一个接口,来隐藏系统的复杂性。这种模式涉及到一个单一的类,该类提供了客户端请求的简化方法和对现有系统类方法的委托调用。核心:1、为子系统中的一组 阅读全文
posted @ 2024-02-19 09:34 郭慕荣 阅读(56) 评论(0) 推荐(0)
摘要:策略模式是开发中常用的一种设计模式,主要解决在有多种算法相似的情况下,使用 if...else 所带来的复杂和难以维护的问题。看了网上很多关于策略模式的上下文切换类实现都不甚优雅,故而想总结分享一篇自我感觉比较优雅的处理方式,方便大家一起学习。方式一:使用@PostConstruct初始化到map中 阅读全文
posted @ 2023-10-31 09:55 郭慕荣 阅读(1431) 评论(0) 推荐(0)
摘要:参数校验 https://mp.weixin.qq.com/s?__biz=MzkwOTAyMTY2NA==&mid=2247493532&idx=1&sn=a4f21e20103eb53c9328d08b1d6af4fc&chksm=c0c3bf13f7b436059db439d9f80b2771 阅读全文
posted @ 2023-09-14 09:31 郭慕荣 阅读(139) 评论(0) 推荐(0)
摘要:public interface TransactionDetailProcessor { /** * 判断是否策略包含内容 * * @param strategy * @return */ boolean fitStrategy(QueryOrderDetailStrategy strategy) 阅读全文
posted @ 2023-05-22 14:27 郭慕荣 阅读(32) 评论(0) 推荐(0)
摘要:适配器模式是一种重要的设计模式,能让代码简练。直接上代码。定义接口,如下所示: public interface IOrderOperate<C, U, D> { /** * 创建单据 */ boolean creatOrder(C param); /** * 批量创建 * @param param 阅读全文
posted @ 2022-08-19 16:40 郭慕荣 阅读(125) 评论(0) 推荐(0)
摘要:对于上面的请求链,我们也可以把这个关系维护到配置文件中或者一个枚举中。我将使用枚举来教会大家怎么动态的配置请求链并且将每个请求者形成一条调用链。 public enum GatewayEnum { // handlerId, 拦截者名称,全限定类名,preHandlerId,nextHandlerI 阅读全文
posted @ 2022-08-11 15:41 郭慕荣 阅读(145) 评论(0) 推荐(0)
摘要:一、建造者模式的概念建造者模式属于创建型设计模式。指的是将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。建造者模式主要解决在软件系统中,有时候面临着"一个复杂对象"的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部分经常面临着剧烈的变化, 阅读全文
posted @ 2021-08-13 16:09 郭慕荣 阅读(162) 评论(0) 推荐(0)
摘要:单例设计模式代码如下所示: package com.springboot.study.tests; /** * @Author: guodong * @Date: 2021/5/26 16:00 * @Version: 1.0 * @Description: */ public class Sing 阅读全文
posted @ 2021-05-26 16:03 郭慕荣 阅读(718) 评论(0) 推荐(0)
摘要:一:简介状态模式设计模式是一种行为型的设计模式。当一个对象内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。定义对于初学者没啥用,因为字都认识却无法理解其中的含义。必须等学完了,回过头来看才能更加深刻的理解其含义。 使用场景你发现你的代码里面存在一个很长的if else列表,而这些分支都是 阅读全文
posted @ 2021-05-08 16:27 郭慕荣 阅读(257) 评论(0) 推荐(0)
摘要:一、简介享元模式是一种结构性的设计模式,允许使用对象共享来有效地支持大量细粒度对象。“享”就是分享之意,指一物被众人共享,而这也正是该模式的终旨所在。享元模式有点类似于单例模式,都是只生成一个对象来被共享使用。这里有个问题,那就是对共享对象的修改,为了避免出现这种情况,我们将这些对象的公共部分,或者 阅读全文
posted @ 2021-05-08 15:42 郭慕荣 阅读(134) 评论(0) 推荐(0)
摘要:一.装饰者模式定义:​动态地为一个对象添加一些额外的职责,若要扩展一个对象的功能,装饰者提供了比继承更有弹性的替代方案。模式的结构图: 二.模式包含角色 :抽象构件类(Component):给出一个抽象的接口,用以规范准备接收附加责任的对象具体构件类(ConcreteComponent):定义一个具 阅读全文
posted @ 2021-05-06 13:46 郭慕荣 阅读(389) 评论(0) 推荐(0)
摘要:一:设计模式概要 阅读全文
posted @ 2021-05-03 18:22 郭慕荣 阅读(48) 评论(0) 推荐(0)
摘要:1. 介绍1.1 定义策略模式是属于一个行为型的设计模式,定义一系列算法,将每个算法封装到具有公共接口的一系列策略类中,从而使它们可以相互替换 & 让算法可在不影响客户端的情况下发生变化。简单来说:准备一组算法 & 将每一个算法封装起来,让外部按需调用 & 使得互换。 1.2应用场景 ①:系统中有很 阅读全文
posted @ 2021-05-03 17:53 郭慕荣 阅读(119) 评论(0) 推荐(0)
摘要:一:模板方法代码如下所示: 1、定义模板类 public abstract class TemplateMethod { /**模板方法:总体算法的骨架,总体不能修改 * @return */ final public Long typeOperate(){ //当前系统的时间(毫秒) Long c 阅读全文
posted @ 2021-04-26 14:19 郭慕荣 阅读(174) 评论(0) 推荐(0)
摘要:组合模式就是对象嵌套对象的模式,组合模式是以树形结构呈现。 一、概念①、什么是组合模式?组合模式又叫部分整体模式,是用于把一组相似的对象当做一个单一的对象。组合模式依据树型结构来组合对象,用来表示部分以及整体层次。这种类型的设计模式属于结构性模式,它创建了对象组的树形结构。②、主要解决的问题?它在树 阅读全文
posted @ 2021-04-19 11:29 郭慕荣 阅读(95) 评论(0) 推荐(0)
摘要:一 概述定义:适配器模式将某个类的接口转换成客户端期望的另一个接口表示,主的目的是兼容性,让原本因接口不匹配不能一起工作的两个类可以协同工作。其别名为包装器(Wrapper)。适配器模式主要是用来参数转化的。属于结构型模式,主要分为三类:类适配器模式、对象的适配器模式、接口的适配器模式。 本文定义: 阅读全文
posted @ 2021-03-01 15:34 郭慕荣 阅读(136) 评论(0) 推荐(0)
摘要:概念责任链,顾名思义,就是用来处理相关事务责任的一条执行链,执行链上有多个节点,每个节点都有机会(条件匹配)处理请求事务,如果某个节点处理完了就可以根据实际业务需求传递给下一个节点继续处理或者返回处理完毕。 责任链模式优缺点优点:降低耦合度。它将请求的发送者和接收者解耦 简化了对象,使得对象不需要知 阅读全文
posted @ 2021-02-22 15:55 郭慕荣 阅读(574) 评论(0) 推荐(0)