白话java设计模式

创建模式

单例模式(Singleton Pattern):

就是一次创建多次使用,它的对象不会重复创建,可以全局来共享状态。

工厂模式(Factory Method Pattern):

可以通过接口来进行实例化创建,创建时不需要知道创建对象的具体参数,直接获取到最终的产品对象。

举例来说,工厂模式就像我们买车一样,你不需要知道车辆的具体参数指标,只需要输入车辆的型号就可以买到车。哪怕厂家对车辆进行调参后,你获得的还是这个型号的车。

建造者模式(Builder Pattern):

这种模式顾名思义,就是在创建对象的时候需要调用多个建造步骤,比如制造车,分为安装轮胎,安装底盘,安装发动机等,创建对象的时候按需求调用就行。针对所有车的建造流程大同小异,所以可以定义一个建造车辆的抽象接口类定义所有的建造步骤。

原型模式(Prototype Pattern):

克隆一个原来的对象。

结构模式

适配器模式(Adapter Pattern):

将一个类的接口转换为客户端希望的另一个接口,使得原本因接口不兼容而无法一起工作的类可以一起工作。

做一个适配类,把原来那个类的接口重新重新处理一下。

桥接模式(Bridge Pattern):

将抽象与实现解耦,使得两者可以独立地变化。

装饰者模式(Decorator Pattern):

动态地给一个对象添加额外的功能,而不改变其结构。

外观模式(Facade Pattern):

为复杂子系统提供一个简化的接口,使得客户端使用起来更加方便。

享元模式(Flyweight Pattern):

通过共享对象来减少内存使用,尤其是大量相似对象时。

组合模式(Composite Pattern):

将对象组合成树形结构来表示部分-整体的层次结构,客户端可以一致地对待单个对象和组合对象。

代理模式(Proxy Pattern):

为另一个对象提供代理以控制对该对象的访问。

行为模式

责任链模式(Chain of Responsibility Pattern):

为请求创建一个链式的处理对象结构,允许多个对象有机会处理请求。

命令模式(Command Pattern):

将请求封装成对象,从而允许使用不同的请求、队列或日志来参数化客户端。

解释器模式(Interpreter Pattern):

为语言的句法定义一种解释器,解释器可以处理语言中的各种表达式。

迭代器模式(Iterator Pattern):

提供一种方法顺序访问一个聚合对象中的元素,而又不暴露该对象的内部表示。

中介者模式(Mediator Pattern):

用一个中介者对象来封装一系列对象之间的交互,减少对象之间的直接耦合。

备忘录模式(Memento Pattern):

在不暴露对象实现细节的情况下,保存对象的内部状态,并可以在需要时恢复该状态。

观察者模式(Observer Pattern):

定义对象之间的一对多依赖关系,当一个对象状态发生改变时,所有依赖于它的对象都会自动收到通知并更新。

状态模式(State Pattern):

允许对象在其内部状态改变时改变其行为,行为的改变看起来像是改变了对象的类。

策略模式(Strategy Pattern):

定义一系列算法,把它们一个个封装起来,并使它们可以互换。

模板方法模式(Template Method Pattern):

在一个方法中定义一个算法的框架,允许子类在不改变算法结构的情况下重新定义某些步骤。

访问者模式(Visitor Pattern):

表示一个作用于某对象结构中的各个元素的操作,允许在不改变各个元素类的前提下定义作用于这些元素的新操作。

相关推荐
Cosolar3 小时前
DeepSeek Harness 理解 Harness 的设计哲学 - 可组合的插件运行时
人工智能·设计模式·架构
Nebula_g4 小时前
JavaSE基础语法:特殊类(特殊情景下的设计模式)
java·开发语言·设计模式
George_Ye19 小时前
同一本书,一人一份:我如何设计 AI 个性化扫书报告
设计模式
莫得感情 o1 天前
设计模式 22 · 三个冷门模式:中介者、访问者、解释器
java·设计模式
AI人工智能+电脑小能手2 天前
大白话说Java设计模式-08-建造者模式(业务实战篇)
java·设计模式·建造者模式·架构设计·对象构建
AustinXu2 天前
从 Claude Code 到 Claude Tag,Harness Engineering 走到了组织这一层
设计模式·团队管理
剧中有戏2 天前
单例模式从入门到精通:一个数据库连接池的完整剖析
设计模式
胡萝卜术2 天前
编译期与运行期的双重防线:从 TypeScript 类型之争到 LLM 输出的自动化择优
前端·设计模式·面试
货拉拉技术2 天前
重塑 Agent 度量衡:基于 LLM-as-a-Judge 的离线评估体系与实践
算法·设计模式
KhalilRuan2 天前
设计模式小记
设计模式