设计模式

设计模式--策略模式

## 概念 > **策略模式** 是一种 **行为设计模式**;当在处理一个业务时,有多种处理方式,并且需要在运行时决定使哪一种具体实现时,就会使用 **策略模式** ## 特点 策略模式体现了面向对象程序设计中非常重要的两个原则: 1. 封装变化的概念 2. 编程中使用接口,而不是使用具体的实现类 ......
模式 设计模式 策略

Spring框架中的设计模式(重点学习!!!)

# Spring中的设计模式 Spring框架中用到的设计模式有很多,以下是一些常见的设计模式: 1. 依赖注入(DI)和控制反转(IoC):这是Spring框架最核心的设计模式,它允许开发人员将对象之间的依赖关系从代码中抽离出来,由Spring容器负责管理和注入对象之间的依赖关系。 2. 工厂模式 ......
设计模式 框架 重点 模式 Spring

一些常用的软件设计模式

# 1 工厂模式 工厂模式(Factory Pattern):定义一个创建对象的接口,但是让子类决定要实例化的类是哪一个,将对象的创建和使用分离开来,降低代码的耦合度。 工厂模式(Factory Pattern)是一种创建型设计模式,用于创建对象而不会暴露创建逻辑。它允许在运行时确定创建哪个具体类的 ......
设计模式 常用 模式 软件

DDD设计思想整合Saga模式的简易框架

花了两天,写了个简陋的以领域驱动为思想的Saga模式事务管理框架,主要为了讲解:[领域驱动模型DDD(三)——使用Saga管理事务](https://www.cnblogs.com/linchenguang/p/16179193.html) 教学而设计的,只能在单体架构中使用,后续会更新分布式情况下 ......
设计思想 简易 框架 思想 模式

设计模式-法则大全

SOLID原则: 单一职责原则SRP:一个类只负责完成一个职责或功能;要设计粒度小、功能单一的类 开闭原则OCP:对扩展开放、对修改关闭;在已有基础上扩展代码(新增模块、类、方法等),而非修改已有代码(修改模块、类、方法等); 里式替换LSP:父类定义了函数的“约定”(或者协议),那子类可以改变函数 ......
设计模式 法则 模式 大全

02-设计模式-观察者模式

观察者模式涉及的对象: > - 观察者接口、观察者接口的实现类 > - 被观察者接口、被观察者接口的实现类 1、观察者接口-代码: ```java public interface Observer { void update(String msg); } ``` 2、观察者接口的实现类-代码: ` ......
模式 观察者 设计模式 02

01-设计模式-代理模式

## 1、代理模式的分类 代理模式分为: > 静态代理:在编译阶段确定了被代理对象的类型,简单。 > 动态代理:在运行阶段确定了被代理对象的类型,复杂。 ## 2、静态代理 静态代理涉及的类: > 1. 一个接口,下面的例子中命名为`Subject` > 2. 实现了接口的 被代理对象`RealSu ......
模式 设计模式 01

JAVA设计模式之责任链模式

设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ......
模式 设计模式 责任 JAVA

设计模式-桥接模式在Java中的使用示例

场景 桥接模式情境引入 假如我们需要大中小3种型号的画笔,能够绘制12种不同的颜色,如果使用蜡笔,需要准备3×12 = 36支, 但如果使用毛笔的话,只需要提供3种型号的毛笔,外加12个颜料盒即可,涉及到的对象个数仅为 3 + 12= 15, 远小于36,却能实现与36支蜡笔同样的功能。如果增加一种 ......
模式 设计模式 示例 Java

设计模式模板-抽象工厂

1 #ifndef TEMPLATE_ABSTRACT_FACTORY_H 2 #define TEMPLATE_ABSTRACT_FACTORY_H 3 4 #include <algorithm> 5 #include <list> 6 #include <mutex> 7 8 template ......
设计模式 工厂 模板 模式

设计模式-建造者模式在Java中使用示例

场景 建造者模式 复杂对象的组装与创建 没有人买车会只买一个轮胎或者方向盘,大家买的都是一辆包含轮胎、方向盘和发动机等多个部件的完整汽车。 如何将这些部件组装成一辆完整的汽车并返回给用户,这是建造者模式需要解决的问题。 建造者模式又称为生成器模式,它是一种较为复杂、使用频率也相对较低的创建型模式。 ......
模式 设计模式 示例 Java

JAVA设计模式之策略模式

设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ......
模式 设计模式 策略 JAVA

设计模式-day05

# 6,行为型模式 ## 6.5 状态模式 ### 6.5.1 概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能进行开门操作,而如果电梯门是停止状态,就可以执行开门 ......
设计模式 模式 day 05

设计模式-day06

# 6,行为型模式 ## 6.11 解释器模式 ### 6.11.1 概述 如上图,设计一个软件用来进行加减计算。我们第一想法就是使用工具类,提供对应的加法和减法的工具方法。 ```java //用于两个整数相加 public static int add(int a,int b){ return ......
设计模式 模式 day 06

设计模式-day01

## 设计模式-导学 ### 1,课程背景 随着软件开发人员人数的增多,一些公司急需一些高端人才。作为一个高端人才,设计面向对象软件是必不可少的能力,而软件设计是需要很深的功力,设计模式就要求你必须掌握,而本课程就是带领你进入设计模式世界。 ### 2,课程概述 本课程从设计模式的一些相关的概念开 ......
设计模式 模式 day 01

设计模式-day02

# 4,创建型模式 ## 4.2 工厂模式 ### 4.2.1 概述 需求:设计一个咖啡店点餐系统。 设计一个咖啡类(Coffee),并定义其两个子类(美式咖啡【AmericanCoffee】和拿铁咖啡【LatteCoffee】);再设计一个咖啡店类(CoffeeStore),咖啡店具有点咖啡的功 ......
设计模式 模式 day 02

设计模式-day03

# 5,结构型模式 结构型模式描述如何将类或对象按某种布局组成更大的结构。它分为类结构型模式和对象结构型模式,前者采用继承机制来组织接口和类,后者釆用组合或聚合来组合对象。 由于组合关系或聚合关系比继承关系耦合度低,满足“合成复用原则”,所以对象结构型模式比类结构型模式具有更大的灵活性。 结构型模 ......
设计模式 模式 day 03

重温设计模式 --- 前篇

## 引言 软件开发过程中,我们经常会遇到各种设计问题,例如如何管理对象之间的关系、如何优化代码的可复用性和可维护性等等。为了解决这些问题,我们可以使用设计模式。 设计模式是一种被广泛接受的软件设计思想,它提供了一套通用的解决方案,可以帮助我们更好地解决常见的软件设计问题。设计模式是从实践中总结出来 ......
前篇 设计模式 模式

JAVA设计模式之适配器模式

设计模式 设计模式(Design Pattern)是前辈们对代码开发经验的总结,是解决特定问题的一系列套路。它不是语法规定,而是一套用来提高代码可复用性、可维护性、可读性、稳健性以及安全性的解决方案。 总体来说设计模式分为三大类: 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式 ......
模式 设计模式 适配器 JAVA

重温设计模式 --- 备忘录模式

## 引言 **备忘录模式**是一种行为型设计模式,它允许你捕获对象的内部状态,并在不暴露其实现细节的情况下将其保存在外部对象中,从而可以在以后的某个时间点将该对象恢复到先前的状态。 备忘录模式有以下几个主要角色: - **Originator(原发器)**:是需要被保存状态的对象。它可以创建一个M ......
模式 设计模式 备忘录

重温设计模式 --- 访问者模式

## 引言 **访问者模式**是一种行为型设计模式,它允许你在不修改对象结构的前提下定义作用于这些对象元素的新操作。它主要解决了在不修改已有类的前提下,对已有类中的对象进行新操作的问题。 访问者模式有以下几个主要角色: - 访问者(Visitor):访问者角色是一个抽象类或接口,其中定义了访问每个被 ......
模式 设计模式 访问者

重温设计模式 --- 解释器模式

## 引言 **解释器模式**是一种行为型设计模式,它允许你定义一个语言的文法,并且定义一个解释器来解释该语言中的句子。该模式可以用于编写编译器、计算器、查询语言等应用程序。 解释器模式中有以下三个主要角色: - **抽象表达式(Abstract Expression)**:它是所有表达式的抽象基类 ......
模式 解释器 设计模式

重温设计模式 --- 中介者模式

## 引言 **中介者模式**是一种行为型设计模式,它用于减少对象之间的直接耦合,从而更好地维护代码的可扩展性和可维护性。 在中介者模式中,一个中介者对象封装了一组对象之间的交互逻辑,这些对象通常都有相互关联,但是彼此之间并不直接交互。中介者对象负责协调对象之间的通信,将对象之间的通信逻辑封装在中介 ......
中介者 模式 设计模式 中介

重温设计模式 --- 状态模式

## 引言 **状态模式**是一种行为型设计模式,它允许对象在其内部状态改变时改变其行为。该模式将对象的行为与其状态分离,并将每种状态封装在不同的类中。这样,对象可以在运行时根据其状态选择不同的行为,而不必在代码中使用大量的条件语句来处理这些状态。 状态模式的优点是它将与特定状态相关的行为局部化并且 ......
模式 设计模式 状态

重温设计模式 --- 模板方法模式

## 引言 **模板方法模式**是一种行为设计模式,它定义了一个算法的骨架,将一些步骤延迟到子类中实现,以达到代码复用和减少重复代码的目的。 当我们使用模板方法模式时,我们可以将一些公共的算法步骤放在抽象基类中,这些步骤可以在多个子类中重复使用,从而减少了代码的重复性。同时,我们可以通过子类实现抽象 ......
模式 设计模式 模板 方法

重温设计模式 --- 命令模式

## 引言 **命令模式**是一种行为型设计模式,它将请求封装成一个对象,从而允许你将不同的请求对客户端参数化,将请求排队或记录请求日志,以及支持可撤销的操作。 在命令模式中,有四个主要角色: - **接收者(Receiver)**:接收者是实际执行操作的对象。它定义了如何执行与请求相关的操作。 - ......
模式 设计模式 命令

重温设计模式 --- 策略模式

## 引言 **策略模式**是一种行为设计模式,它允许在运行时选择算法的行为。该模式定义了一系列算法,将它们封装成独立的类,并使它们可以互相替换。这使得算法可以独立于使用它们的客户端而变化。 在策略模式中,有三个主要的角色: - **环境(Context)**:它是使用策略的对象,它维护一个对策略对 ......
模式 设计模式 策略

重温设计模式 --- 责任链模式

## 引言 **责任链模式**是一种行为型设计模式,它通过一条由多个处理器组成的链来处理请求,每个处理器都有机会处理请求,如果一个处理器不能处理该请求,它会将请求传递给下一个处理器,直到请求被处理为止。 在实际应用中,责任链模式常用于处理请求的分发、事件处理等场景,它的优点在于可以动态地添加、删除处 ......
模式 设计模式 责任

重温设计模式 --- 迭代器模式

## 引言 **迭代器模式**是一种行为型设计模式,它允许按照特定顺序遍历集合对象的元素,同时不暴露集合的内部结构。这样做可以让客户端代码不依赖于集合对象的具体实现,从而提高代码的灵活性和可重用性。 在迭代器模式中,聚合对象将其遍历的职责委托给迭代器对象,而不是在聚合对象中实现遍历。 迭代器模式的优 ......
模式 设计模式

重温设计模式 --- 享元模式

## 引言 **享元模式**是一种结构型设计模式,它允许你在消耗少量内存的情况下支持大量对象。如果你需要生成大量细粒度的类实例来表示数据,而这些实例除了几个参数外基本上都是相同的,那么你可以使用享元模式来 避免大量相似类的开销。 在享元模式中,有两种状态:**内部状态**和**外部状态**。内部状态 ......
模式 设计模式