设计模式大全及实现方式简述

原则

扩展优于修改。开闭原则:对扩展开发,对修改封闭。

分类

单例模式

确保一个类只有一个实例,并且提供全局访问方式。
实现:

  • private构造方法
  • 饿汉式:类加载时立即实例化,类里面写new
  • 懒汉式:第一次使用时才实例化,加锁防止多线程多次实例化。双重检验锁加速

简单工厂模式

工厂 -> 子类
定义一个工厂类来负责创建其他类的实例。
实现:

  • 根据传入参数不同创建不同实例

工厂模式

工厂 -> 子工厂 -> 子类
定义一个创建类的接口,让子类决定实例化哪个类。
实现:

  • 两个抽象接口:抽象工厂、抽象产品
  • 两个具体类:具体工厂类、具体产品类
  • 抽象工厂产生具体工厂,具体工厂类创建产品类并实现抽象产品类的方法。

抽象工厂模式

工厂模式只能创建一大类产品,抽象工厂模式可以生产几大类产品。
实现:

  • 相比工厂模式:多个抽象产品。

装饰器模式

动态给对象添加功能。相比子类更加灵活。
实现:

  • 装饰器也实现了原来的接口,加上新的功能,然后装饰器构造方法里传入具体对象。

适配器模式

将一个类的接口变为客户端需要的另一个接口。
实现:

  • 原有方法再外包一个方法。

观察者模式

一对多,其相关依赖对象得到通知并更新。
实现:

  • 添加观察者
  • 通知观察者

外观模式

要求子系统外部与其内部的通信必须通过一个统一的对象进行。“中介”。不符合开闭原则。

状态模式

允许一个对象在其内部状态改变时改变它的行为。“类似switch”

策略模式

定义一组算法,可以相互替换,可以随意选择一种。
“状态模式”关注不同状态下所有行为,“策略模式”直接关注具体行为。

代理模式

为其他对象提供一个代理已控制对这个对象的访问。

责任链模式

一种处理请求的模式,一条处理链上直到某个处理器处理成功为止。

模板方法模式

固定步骤的算法框架,具体步骤的实现方法可子类实现。

享元模式

运用共享技术有效地支持大量细粒度的对象。“共享单车库”、“池技术”。

命令模式

将命令转换为包含该命令所有信息的独立对象。然后对象绑定命令。

生成器模式

生成器包括一系列步骤,具体对象选择其中几个步骤。对象类上写@Builder可以自动实现。

原型模式

“克隆”,克隆了私有成员。
实现:

  • implements Prototype,然后override clone()方法

备忘录模式

“克隆”交给对象本身去做,允许在不暴露对象实现细节的情况下保存和恢复对象之前的状态。
实现:

  • 备忘录类,内部成员变量和需要备份的类一致,构造方法保存了待备份类的私有变量。
  • 备忘录栈,存储备忘录类的对象。

迭代器模式

不暴露集合底层表现形式的情况下遍历集合中所有的元素。

组合模式

将对象组合成树形结构,并且能像使用独立对象一样使用它们。

桥接模式

维度分离。将抽象和实现解耦,使得两者可以独立变化。化继承为关联。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值