当前位置: 首页 > article >正文

白话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):

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


http://www.kler.cn/a/441945.html

相关文章:

  • 第十三章:数据库技术
  • k8s集群安装
  • 四、华为交换机 STP
  • Spring Boot 集成 MongoDB:启动即注入的便捷实践
  • 【LLM-RL】DeepSeekMath强化对齐之GRPO算法
  • 认识 MySQL 和 Redis 的数据一致性问题
  • 单片机:实现pwm调光(附带源码)
  • 【人工智能数学基础篇】——深入详解基本概率论之概率分布(正态分布、伯努利分布等)、期望、方差等概念
  • 少样本学习之CAML算法
  • 【DevOps工具篇】SCM之Gitlab
  • 【BUG记录】Apifox 参数传入 + 号变成空格的 BUG
  • Cherno C++学习笔记 P41 运算符与重载
  • Elasticsearch:使用 Open Crawler 和 semantic text 进行语义搜索
  • 华为HarmonyOS帮助应用实现在线认证服务 -- 2 FIDO免密身份认证
  • [Unity]在unity 中输出调试安卓真机日志
  • react Ant Design
  • Next.js搜索引擎优化:静态站点生成的SEO优势详解
  • 【C语言】打牌游戏
  • visual studio添加滚动条预览
  • SSM 寝室管理系统:为住宿生活保驾护航
  • sqlilabs第三十关到第三十五关靶场攻略
  • Linux脚本语言学习--上
  • Cesium-(Primitive)-(CylinderGeometry)
  • 8、基于SpringBoot的房屋租赁系统
  • Nginx负载均衡策略详解
  • 安装与配置MongoDB 6.0以支持远程连接