Java23种设计模式

了解设计模式之前先了解:设计模式的六大原则

定义:设计模式(Design Pattern)是一套反复使用、多数人知晓的、经过分类编目的代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性。

23种设计模式分类:

  • 创建型:针对的都是对象构建时候的模式。
  • 行为型:针对运行运行过程中的模式
  • 结构型:在创建型的基础上的附加优化。
    23种设计模式

创建型:针对的都是对象构建时候的模式。

  1. 单例模式,特点:全局只有一个实例。

定义:单例模式,也叫单子模式,是一种常用的软件设计模式。在应用这个模式的时候,单例对象的类必须保证只有一个实例存在。

  1. 工厂方法模式,特点:为每种产品设计一个单独的工厂。

定义:为不同产品提供不同的工厂实现类,调用不同工厂实现类初始化不同工厂实例。

  1. 抽象工厂模式,特点:工厂包含多个工厂。

定义:为内部多个工厂提供接口选择的工厂模式。

  1. 建造者模式,特点:根据用户调用不同,生产出的产品也不同。

定义:将一个复杂的对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。

  1. 原型模式,特点:克隆对象。

定义:原型模式就是对象的克隆,是用于解决对象重复创建消耗性能的问题,或者数据的备份。

行为型:针对运行运行过程中的模式。

  1. 迭代器模式,特点:有序集合遍历功能分离

定义:为顺序集合封装一个迭代器,用于访问顺序集合对象,无需考虑集合中的其他功能。

  1. 观察者模式,特点:一对一或一对多的响应关系。

定义:一个对象发生改变,订阅他的对象也随着跟着改变,不需要在乎互相之间是如何改变的。

  1. 模板方法模式,特点:继承抽象类。

定义:构建骨架、提取逻辑以及功能实现的公共部分,不确定功能交给子类实现。

  1. 命令模式,特点:借助命令对象来解耦。

定义:创建一个命令,内部持有请求对象,调用者持有命令的统一调用,实现调用者和请求之间的解耦。

  1. 状态模式,特点:改变对象内部状态。

定义:状态模式把所研究的对象的行为包装在不同的状态对象里,对象内部状体发生改变,调用不同的状态对象,行为也发生改变。

  1. 策略模式,特点:把不同算法封装成策略对象。

定义:策略模式把所研究的对象的算法包装在不同的策略对象里,策略对象改变计算的结果也会发生改变。

  1. 责任链模式,特点:上下级关系中任意等级处理问题。

定义:为请求者创建一个接受者链,请求者不需要关心具体谁处理了请求,实现请求者和具体的请求处理者之间的解耦。

  1. 中介者模式,特点:多个相互关联对象解耦。

定义:中介者模式为多个互相关联的对象提供服务,使多个对象都与中介者关联,实现对象之间的解耦。

  1. 访问者模式,特点:访问者使用重载,条件为被访问者。

定义:访问者模式包含两个元素:访问者、被访问者。其中根据访问者的不同,被访问者提供的数据也不同。

  1. 解释器模式,特点:递归分步解决问题。

定义:一种语法分析工具,用来分步解释一个复杂的运算过程,复杂运算拆分成多个小运算。

  1. 备忘录模式,特点:创建保存状态的类以及管理的类。

定义:用来存储对象内部状态的设计模式。

结构型:在创建型的基础上的附加优化。

  1. 组合模式,特点:一种调用解决所有问题。

定义:组合模式就是对象嵌套对象的模式,组合模式是以树形结构呈现。

  1. 外观模式 ,特点:单独封装一层调用。

定义:当系统拥有多个子系统的时候,为了方便客户使用,结构上封装一层统一调用的外观,这种模式叫做外观模式。

  1. 代理模式,特点:代理者持有被代理者并拥有共同的方法。

定义:动态生成一个子类, 然后子类覆盖代理类中的方法。

  1. 适配器模式,特点:把不适合变为适合。

定义:将不符合要求的对象适配成符合要求对象的一种模式。

  1. 装饰模式,特点:化妆不改变原本的样子。

定义:装饰模式是不改变原来对象的基础上对原对象的拓展。

  1. 桥模式,特点:抽象类与接口功能分离。

定义:桥模式用于抽象(abstraction)与实现(implementation)功能的解耦,使复杂的项目逻辑简单化,符合迪米特法则。

  1. 享元模式,特点:复用对象。

定义:享元模式通过对象的复用,减少创建对象对性能的消耗,并且减少系统中对象的数量,节约内存。

  • 10
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值