
设计模式
文章平均质量分 96
全是沉淀
FLZJ_KL
不是外包!!!不偷吃零食!!!做梦都想写2C业务
展开
-
【设计模式】【创建型模式】单例模式(Singleton)
单例模式是一种设计模式,确保一个类只有一个实例,并提供一个全局访问点。它常用于需要全局唯一对象的场景,如配置管理、连接池等。全局唯一访问点单例模式确保一个类只有一个实例,并提供一个全局访问点,方便其他模块或组件共享该实例。示例:配置管理器、日志记录器等。节省资源对于创建成本高的对象(如数据库连接池、线程池),单例模式可以避免重复创建和销毁,节省系统资源。示例:数据库连接池通常只需要一个实例来管理所有连接。保持一致性单例模式确保全局状态的一致性,避免多个实例导致状态冲突。原创 2025-02-21 08:14:51 · 1392 阅读 · 0 评论 -
【设计模式】【创建型模式】工厂方法模式(Factory Methods)
工厂方法模式(Factory Method Pattern)是一种创建型设计模式,它定义了一个用于创建对象的接口,但由子类决定实例化哪个类。工厂方法模式使类的实例化延迟到子类。简单工厂方法就是所有的产品都交给一个工厂来处理,而工厂方法是交给多个工厂。解耦工厂方法模式将对象的创建与使用分离,客户端代码只需要依赖抽象的工厂接口和产品接口,而不需要关心具体的实现类。例如,在 Spring 框架中,客户端通过获取 Bean 对象,而不需要知道具体的 Bean 实现类。符合开闭原则。原创 2025-02-20 21:41:46 · 728 阅读 · 0 评论 -
【设计模式】【创建型模式】抽象工厂模式(Abstract Factory)
抽象工厂模式是一种创建型设计模式,它提供了一个接口,用于创建相关或依赖对象的家族,而不需要指定具体的类。简单来说,抽象工厂模式是工厂方法模式的升级版,它能够创建一组相关的对象,而工厂方法模式只能创建一种对象。保证产品家族的一致性抽象工厂模式确保创建的对象是同一家族的,比如现代风格的沙发、茶几、电视柜,避免了风格不一致的问题。解耦客户端代码客户端代码只依赖于抽象工厂和抽象产品接口,不依赖于具体的实现类,符合依赖倒置原则。符合开闭原则。原创 2025-02-20 08:22:48 · 775 阅读 · 0 评论 -
【设计模式】【创建型模式】原型模式(Prototype)
原型模式(Prototype Pattern)是一种创建型设计模式,它通过复制现有对象来创建新对象,而不是通过实例化类。原型模式的核心是克隆(Clone),即通过复制现有对象来创建新对象。Java 提供了 Cloneable 接口和 clone() 方法来实现对象的浅拷贝。高效创建对象通过复制现有对象来创建新对象,避免了重复的初始化过程,特别适用于创建成本较高的对象(如数据库连接、复杂计算对象)。原创 2025-02-19 21:42:12 · 1340 阅读 · 0 评论 -
【设计模式】【创建型模式】建造者模式(Builder)
分离构建与表示将对象的构建过程与表示分离,使得相同的构建过程可以创建不同的表示。客户端不需要知道对象的具体构建细节。灵活性和可扩展性可以逐步构建对象,支持动态配置。新增构建步骤或修改构建顺序非常方便。代码可读性和可维护性链式调用()使代码更加简洁和直观。将复杂的构建逻辑封装在建造者类中,客户端代码更清晰。避免构造方法参数过多通过逐步设置属性,避免了构造方法参数过长的问题(保证对象的一致性对象在完全构建之前不会被使用,确保对象的一致性和完整性。原创 2025-02-19 08:22:52 · 1325 阅读 · 0 评论 -
【设计模式】【结构型模式】代理模式(Proxy)
代理模式(Proxy Pattern)是一种结构型设计模式,允许你提供一个代理对象来控制对另一个对象的访问。代理对象在客户端和目标对象之间起到中介作用,可以在不改变目标对象的情况下增加额外的功能或控制访问。职责清晰代理对象负责处理与核心业务无关的逻辑(如权限检查、日志记录、延迟加载等),而真实对象只需关注核心业务逻辑。符合单一职责原则。增强功能在不修改真实对象的情况下,通过代理对象增强功能(如事务管理、缓存、延迟加载等)。解耦。原创 2025-02-18 21:56:25 · 989 阅读 · 0 评论 -
【设计模式】【结构型模式】享元模式(Flyweight)
享元模式(Flyweight Pattern)是一种结构型设计模式,旨在通过共享对象来减少内存使用,特别适用于存在大量相似对象的情况。它的核心思想是将对象的内在状态(不变的部分)与外在状态(变化的部分)分离,从而减少对象的数量。减少内存占用通过共享内在状态,减少系统中对象的数量,从而降低内存使用。特别适用于存在大量相似对象的场景。提高性能减少对象的创建和销毁次数,降低内存分配和垃圾回收的开销。在需要频繁创建和销毁对象的场景中,性能提升尤为明显。优化资源管理。原创 2025-02-18 08:23:39 · 955 阅读 · 0 评论 -
【设计模式】【结构型模式】组合模式(Composite)
组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树形结构来表示“部分-整体”的层次关系。组合模式使得客户端可以统一处理单个对象和组合对象,而无需关心它们的具体类型。将对象组织成树形结构,使得对单个对象和组合对象的操作具有一致性。统一处理单个对象和组合对象核心优势:客户端无需区分处理的是叶子节点(单个对象)还是复合节点(组合对象)。案例:在文件系统中,无论是文件(叶子节点)还是文件夹(复合节点),都可以统一调用display()方法展示信息。简化客户端代码。原创 2025-02-17 21:48:42 · 1246 阅读 · 0 评论 -
【设计模式】【结构型模式】外观模式(Facde)
一种结构型设计模式,通过为子系统中的一组接口提供一个统一的高层接口(称为外观),来简化客户端与复杂子系统的交互过程。其本质是建立抽象层来隔离复杂度。简化客户端调用外观模式通过封装复杂的子系统调用,提供一个简单的高层接口。客户端不再需要了解子系统的内部细节,只需调用外观类的方法即可完成复杂操作。例如,Spring的封装了JDBC的繁琐操作,开发者只需调用query()或update()方法,而无需关心连接管理、异常处理等细节。降低耦合度客户端只依赖外观类,而不直接依赖子系统。原创 2025-02-17 08:03:27 · 1005 阅读 · 0 评论 -
【设计模式】【结构型模式】桥接模式(Bridge)
桥接模式(Bridge Pattern)是一种结构型设计模式,核心思想是**将抽象与实现分离,让它们可以独立变化。**简单来说,它像一座“桥”连接了两个维度的变化,避免用继承导致代码臃肿。解耦抽象与实现抽象层和实现层可以独立变化,互不影响。例如,JDBC中Connection接口(抽象层)和Driver实现(实现层)可以分别扩展。提高扩展性新增抽象类或实现类时,无需修改现有代码,符合开闭原则。例如,新增数据库驱动只需实现Driver接口,无需修改JDBC核心代码。减少类爆炸。原创 2025-02-16 21:04:20 · 838 阅读 · 0 评论 -
【设计模式】【结构型模式】装饰者模式(Decorator)
装饰者模式(Decorator Pattern)是 Java 中常用的结构型设计模式,它能在不修改原有对象结构的前提下,动态地为对象添加额外的职责。动态扩展功能无需修改原有代码,运行时动态添加功能案例Java I/O流中,动态为添加缓冲功能避免类爆炸相比继承,装饰者模式通过组合实现功能扩展,避免子类数量指数级增长案例:电商订单系统中,3种附加服务只需3个装饰类,而不是7个子类符合开闭原则对扩展开放:新增装饰器不影响现有代码对修改封闭:无需修改组件接口和具体组件案例。原创 2025-02-16 11:28:03 · 747 阅读 · 0 评论 -
【设计模式】【结构型模式】适配器模式(Adpter)
适配器模式是Java中常用的结构型设计模式,它的核心作用就像现实中的电源转换器一样——让原本不兼容的两个接口能够协同工作。解耦性将客户端与具体实现分离,客户端只依赖目标接口,无需关心底层实现。例如:Spring MVC 的只依赖接口,不关心具体Controller的实现。复用性可以复用现有的类或第三方库,而无需修改其源码。例如:通过复用的功能。扩展性新增适配器即可支持新的实现,符合开闭原则。例如:Spring MVC 新增一种Controller类型时,只需添加对应的。透明性。原创 2025-02-15 20:56:01 · 747 阅读 · 0 评论 -
【设计模式】【行为型模式】解释器模式(Interpreter)
解释器模式(Interpreter Pattern)是一种行为设计模式,用于定义语言的语法表示,并提供一个解释器来处理该语法。它通常用于需要解释和执行特定语言或表达式的场景。易于扩展语法规则通过添加新的表达式类,可以轻松扩展语法规则,符合 开闭原则(对扩展开放,对修改封闭)。实现简单语法解析对于简单的语法规则,解释器模式提供了一种直观的实现方式,将语法规则分解为多个表达式类。解耦语法解析与执行将语法解析逻辑封装在表达式类中,与业务逻辑解耦,使代码更清晰、更易维护。适合领域特定语言(DSL)原创 2025-02-15 13:40:22 · 986 阅读 · 0 评论 -
【设计模式】【行为型模式】备忘录模式(Memento)
备忘录模式(Memento Pattern)是一种行为设计模式,用于在不破坏封装性的前提下,捕获并外部化一个对象的内部状态,以便在需要时恢复该状态。它通常用于实现撤销操作或保存对象的历史状态。封装性好备忘录模式将对象的状态保存在一个独立的Memento对象中,避免了直接暴露对象的内部状态,保持了对象的封装性。简化状态管理通过将状态管理的逻辑集中到Caretaker中,避免了状态管理代码分散在业务逻辑中,使代码更清晰、更易维护。支持撤销/重做功能。原创 2025-02-14 22:08:10 · 1205 阅读 · 0 评论 -
【设计模式】【行为型模式】访问者模式(Visitor)
访问者模式(Visitor Pattern)是一种行为设计模式,允许你将算法与对象结构分离。通过这种方式,可以在不改变对象结构的情况下,向对象结构中的元素添加新的操作。开闭原则优点:新增操作时只需添加新的访问者类,无需修改现有的对象结构。示例:如果需要为类结构添加新的操作(如导出为XML),只需实现一个新的访问者类。单一职责原则优点:将相关操作集中在一个访问者类中,便于维护和扩展。示例:将“计算面积”和“导出为JSON”的逻辑分别放在不同的访问者类中。灵活性。原创 2025-02-14 08:23:19 · 1205 阅读 · 0 评论 -
【设计模式】【行为型模式】迭代器模式(Iterator)
迭代器模式(Iterator Pattern)是一种行为设计模式,它提供了一种顺序访问聚合对象中元素的方法,而不需要暴露其底层表示。迭代器模式将遍历逻辑从聚合对象中分离出来,使得聚合对象可以专注于数据存储,而迭代器负责遍历。解耦遍历逻辑与聚合对象将遍历逻辑从聚合对象中分离出来,聚合对象可以专注于数据存储,而迭代器负责遍历。符合单一职责原则。统一遍历接口提供了一种统一的方式来遍历不同类型的聚合对象(如数组、链表、树等)。客户端代码无需关心聚合对象的内部结构。支持多种遍历方式。原创 2025-02-13 22:24:32 · 993 阅读 · 0 评论 -
【设计模式】【行为型模式】中介者模式(Mediator)
中介者模式(Mediator Pattern)是一种行为设计模式,旨在减少对象之间的直接依赖,通过引入一个中介者对象来协调多个对象之间的交互。这种模式特别适用于对象间存在复杂交互的场景,能够简化系统结构并降低耦合。中介者模式的核心是封装对象间的交互,避免对象直接相互调用,而是通过中介者进行通信。这样,对象只需与中介者交互,而不需要知道其他对象的存在。降低耦合度对象之间不再直接依赖,而是通过中介者进行通信。每个对象只需知道中介者,而不需要知道其他对象的存在。集中管理交互逻辑。原创 2025-02-13 07:42:37 · 850 阅读 · 0 评论 -
【设计模式】【行为型模式】观察者模式(Observer)
观察者模式(Observer Pattern)是一种行为设计模式,它定义了对象之间的一对多依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都会收到通知并自动更新。解耦:主题(Subject)和观察者(Observer)之间是松耦合的(主题不需要知道观察者的具体实现,只需要知道观察者接口,观察者也不需要知道主题的具体实现,只需要实现观察者接口)动态管理依赖:观察者可以动态注册和注销,而不需要修改主题的代码。支持运行时动态添加或移除观察者,灵活性高。符合开闭原则。原创 2025-02-12 21:23:10 · 1199 阅读 · 0 评论 -
【设计模式】【行为型模式】状态模式(State)
状态模式(State Pattern)是一种行为设计模式,允许对象在其内部状态改变时改变其行为,使其看起来像是改变了类。状态模式的核心思想是将对象的状态封装成独立的类,并将行为委托给代表当前状态的对象。消除复杂的条件语句:状态模式将状态相关的行为分散到各个状态类中,避免了大量的if-else或语句,使代码更加清晰。符合开闭原则:新增状态时,只需添加新的状态类,而无需修改现有代码。修改某个状态的行为时,只需修改对应的状态类,不会影响其他状态。提高代码的可读性和可维护性。原创 2025-02-12 07:48:16 · 1068 阅读 · 0 评论 -
【设计模式】【行为型模式】命令模式(Command)
命令模式是一种行为设计模式,它将请求或操作封装为对象,从而使你可以用不同的请求对客户进行参数化,并支持请求的排队、记录、撤销等操作。命令模式的核心是将“请求”封装为独立的对象,包含执行操作所需的所有信息。这样,你可以将请求与执行者解耦,并通过参数化、队列或日志等方式管理请求。解耦调用者和接收者:调用者(Invoker)不需要知道具体的接收者(Receiver)是谁,只需要调用命令对象的 execute() 方法。降低了系统的耦合度,使得调用者和接收者可以独立变化。原创 2025-02-11 21:37:36 · 1169 阅读 · 0 评论 -
【设计模式】【行为型模式】职责链模式(Chain of Responsibility)
职责链模式是一种行为设计模式,它允许你将请求沿着一条链传递,直到有对象处理它为止。每个对象都有机会处理请求,或者将其传递给链中的下一个对象。职责链模式:把多个处理对象连成一条链,请求按顺序传递,谁适合处理就处理,处理不了就传给下一个。优点解耦:发请求的不用关心谁来处理,处理者之间也不互相依赖。灵活:能动态调整链条顺序,或增删处理步骤。单一职责:每个处理者只做自己该做的事。缺点可能没人处理:链条没配好时,请求可能“走完全场”也没结果。性能问题:链条太长时,传递过程拖慢速度。调试麻烦。原创 2025-02-10 22:46:08 · 1263 阅读 · 0 评论 -
【设计模式】【行为型模式】策略模式(Strategy)
策略模式是一种行为设计模式,允许在运行时选择算法或行为。它将算法封装在独立的类中,使得它们可以互换,而不影响客户端代码。策略模式通过将算法或行为封装到独立的类中,提供了一种灵活、可扩展的方式来管理代码中的变化部分。它的核心优势是解耦和动态切换,但也会带来类的数量增加和客户端使用成本的问题。适用于需要动态切换行为、避免重复代码或隔离算法实现细节的场景。优点●灵活性:允许在运行时动态切换算法或行为,无需修改客户端代码。●可扩展性:新增策略时只需添加新的策略类,符合开闭原则(对扩展开放,对修改关闭)。原创 2025-02-09 20:57:14 · 1177 阅读 · 0 评论 -
【设计模式】【行为型模式】模板方法模式(Template Method)
模板模式(Template Method Pattern)是一种行为设计模式,它定义了一个算法的框架,并允许子类在不改变算法结构的情况下重新定义算法的某些步骤。模板模式通过将算法的通用部分放在父类中,而将可变部分留给子类来实现。● 抽象类(Abstract Class):定义一个算法的框架,包含一个模板方法和一些基本操作(可以是抽象的或已经实现的)。原创 2025-02-08 23:08:03 · 1046 阅读 · 0 评论