随笔分类 -  DesignPattern

访问者模式-25(ending)
摘要:概述 访问者模式 (Visitor Pattern) 用于为某对象的元素添加操作,保证在不改变元素的前提下为这些元素添加新操作。 优点:一定程度上符合“开闭原则”。 缺点:添加新元素类型困难,破坏封装性。 abstract class Visitor { abstract void visit(El 阅读全文
posted @ 2024-04-11 17:22 x-yun 阅读(4) 评论(0) 推荐(0) 编辑
模版方法模式-24
摘要:概述 模版方法模式(Template Method Pattern)定义一个操作中算法的骨架,将算法中某些步骤延迟到子类中实现,这样不会改变算法的结构,可以改变某个步骤的行为。 优点:符合“开闭原则”、“单一职责原则”。 缺点:复杂度增加。 abstract class Super { public 阅读全文
posted @ 2024-03-24 09:40 x-yun 阅读(4) 评论(0) 推荐(0) 编辑
策略模式-23
摘要:概述 策略模式 (Strategy Pattern) 又称 Policy,它定义并封装每一种算法,这些算法可以相互替换。 优点:符合开闭原则。 缺点:需要知道并理解每个算法才能选择合适的算法。 interface Sort { abstract void sort(int[] a); } class 阅读全文
posted @ 2024-03-17 10:54 x-yun 阅读(5) 评论(0) 推荐(0) 编辑
状态模式-22
摘要:### 概述 状态模式(State Pattern)又称状态对象(Objects for States)。当一个对象的内部状态改变时其行为跟着改变。 **优点**:提高可维护性。 **缺点**:增加了类的数量,实现较复杂,不符合“开闭原则”。 ```java class Context { priv 阅读全文
posted @ 2023-09-01 19:48 x-yun 阅读(8) 评论(0) 推荐(0) 编辑
观察者模式-21
摘要:### 概述 观察者模式(Observer Pattern)又称发布-订阅(Publish/Subscribe)模式、模型视图(Model/View)模式、源监听器(Source/Listener)模式、从属者(Dependents)模式。它定义了对象之间的一对多的关系,使得一个对象的状态发生改变时 阅读全文
posted @ 2023-08-25 22:12 x-yun 阅读(24) 评论(0) 推荐(0) 编辑
备忘录模式-20
摘要:### 概述 备忘录模式(Memento Pattern)又称 Token,它在不破坏封装性的前提下,捕获一个对象的内部状态并在该对象之外保存,在之后可以将该对象的状态恢复至保存时的样子。 **优点**:提供了状态恢复机制。 **缺点**:资源消耗大。 ```java class Originato 阅读全文
posted @ 2023-08-18 09:23 x-yun 阅读(8) 评论(0) 推荐(0) 编辑
中介者模式-19
摘要:### 概述 中介者模式 (Mediator Pattern) 又称调停者模式。它定义一个中介对象封装一系列对象的交互,使得交互的对象不需要显式地引用。 **优点**:简化对象之间的交互,减少子类的数量。 **缺点**:中介类可能非常复杂。 ```java abstract class Abstra 阅读全文
posted @ 2023-08-11 09:24 x-yun 阅读(8) 评论(0) 推荐(0) 编辑
迭代器模式-18
摘要:### 概述 迭代器模式 (Iterator Pattern) 又称游标 (Cursor)。它提供了一种方式访问聚合对象中的元素而不用暴露这个对象的内部表示。 **优点**:符合“单一职责原则”、“开闭原则”。 **缺点**:增加系统复杂度。 ```java interface Iterator { 阅读全文
posted @ 2023-08-04 13:09 x-yun 阅读(7) 评论(0) 推荐(0) 编辑
解释器模式-17
摘要:### 概述 解释器模式 (Interpreter Pattern) 定义语言的文法,同时创建一个解释器解释该语言的句子。 **优点**:易于扩展、符合“开闭原则”。 **缺点**:执行效率低,复杂文法难以维护。 图示: ![image](https://img2022.cnblogs.com/bl 阅读全文
posted @ 2023-07-29 01:39 x-yun 阅读(3) 评论(0) 推荐(0) 编辑
命令模式-16
摘要:### 概述 命令模式 (Command Pattern) 又称动作 (Action) 模式、事务 (Transaction) 模式。它将请求封装成一个对象,使得请求的发送者和接收者解耦。 **优点**:降低耦合度,符合“开闭原则”。 **缺点**:需要的类数量可能过多。 ```java inter 阅读全文
posted @ 2023-07-22 01:38 x-yun 阅读(10) 评论(0) 推荐(0) 编辑
职责链模式-15
摘要:### 概述 职责链模式 (Chain of Responsibility Pattern) 又称责任链模式。它将请求的发送者和接收者解耦,如果有多个接收者,将这些接收者连接成一条链,请求沿着这条链传递,直到被处理。 **优点**:降低耦合度,符合“开闭原则”。 **缺点**:请求不一定会被处理。链 阅读全文
posted @ 2023-07-14 23:48 x-yun 阅读(10) 评论(0) 推荐(0) 编辑
代理模式-14
摘要:### 概述 代理模式 (Proxy/Surrogate Pattern) 给某个对象一个代理,由代理控制对原对象的使用。 **优点**:一定程度降低耦合度。 **缺点**:实现复杂。 ```java interface Subject { void a(); } class Real implem 阅读全文
posted @ 2023-07-07 14:07 x-yun 阅读(7) 评论(0) 推荐(0) 编辑
享元模式-13
摘要:### 概述 享元模式 (Flyweight Pattern) 又称轻量级模式。它使用共享技术有效支持大量细粒度对象的复用。 **优点**:大量减少内存中对象数量,相同/相似对象在内存中仅保留一份。 **缺点**:增加系统的复杂性。 ```java class External { String e 阅读全文
posted @ 2023-06-30 23:12 x-yun 阅读(10) 评论(0) 推荐(0) 编辑
外观模式-12
摘要:### 概述 外观模式 (Facade Pattern) 又称门面模式。它为多个子系统的接口提供了一致的访问接口,定义了高层接口,使得子系统更易于使用。 **优点**:使子系统易于使用,实现客户和子系统的松耦合关系,不影响客户直接使用子系统类。 **缺点**:一定程度上违反“开闭原则”。 图示: ! 阅读全文
posted @ 2023-06-23 17:32 x-yun 阅读(6) 评论(0) 推荐(0) 编辑
装饰模式-11
摘要:### 概述 装饰模式 (Decorator Pattern) 又称包装器,与适配器模式别名一样,但使用的目的不同。它动态地给一个对象添加职责,相比于通过继承添加职责更加灵活。也称“油漆工”模式(视翻译而定)。 **优点**:扩展对象功能的同时提高了灵活性,符合“开闭原则”。 **缺点**:增加系统 阅读全文
posted @ 2023-06-22 19:05 x-yun 阅读(7) 评论(0) 推荐(0) 编辑
组合模式-10
摘要:概述 组合模式 (Composite Pattern) 又称“整体-部分” (Part-Whole) 模式,它将多个对象组合成树状结构,表示整体-部分的层次,对不同对象的处理提供一致性。 优点:清楚地定义分层次的复杂对象。一致地对待所有对象。 缺点:设计难度高,难以限制复合对象中的元素类型。 abs 阅读全文
posted @ 2023-06-21 09:41 x-yun 阅读(11) 评论(0) 推荐(0) 编辑
桥接模式-09
摘要:概述 桥接模式 (Bridge Pattern) 又称柄体 (Handle and Body) 模式、接口模式。它将可能有着继承关系的对象的抽象和实现分离,使得两者可以独立地变化。 优点:分离了抽象部分和实现部分,提高了灵活性和可扩展性,隐藏了实现的细节。 缺点:降低了系统可理解性,提高了设计难度, 阅读全文
posted @ 2023-06-20 11:49 x-yun 阅读(12) 评论(0) 推荐(0) 编辑
适配器模式-08
摘要:概述 适配器模式 (Adapter Pattern) 将某个类的接口转换成客户希望的另一个接口,使接口不兼容的类也能够一起工作。又称包装器 (Wrapper)。既可以作为类结构型模式,也可以作为对象结构型模式。 优点:目标类和 adaptee 类解耦。提高了类的透明性和可复用性,灵活性和扩展性。 缺 阅读全文
posted @ 2023-06-19 09:49 x-yun 阅读(7) 评论(0) 推荐(0) 编辑
单例模式-07
摘要:概述 单例模式 (Singleton Pattern) 又称单件模式、单态模式。确保一个类只能有一个实例,同时保证该类的实例只能在类内部创建,提供给整个系统使用。 优点:节约系统资源,提高系统性能。 缺点:扩展困难,一定程度上违反了“单一职责原则”。 class Singleton { privat 阅读全文
posted @ 2023-06-18 21:46 x-yun 阅读(3) 评论(0) 推荐(0) 编辑
原型模式-06
摘要:概述 原型模式 (prototype pattern) 是将某个类实例作为原型,对这个原型进行复制得到相同类型的多个实例。 优点:当需要创建的类型比较复杂时,使用原型模式可以简化创建过程。 缺点:每个类都需要有一个克隆方法,对于深复制比较复杂。 Java 中,实现 Cloneable 接口可以使用 阅读全文
posted @ 2023-06-18 21:29 x-yun 阅读(5) 评论(0) 推荐(0) 编辑