学点设计模式,盘点Spring等源码中与设计模式的那些事,给所有的设计模式来个大总结

学点设计模式,盘点Spring等源码中与设计模式的那些事,给所有的设计模式来个大总结

  • 这篇没有什么技巧可言,前边都仔细看过了,这里总结一下
    在这里插入图片描述

创建型模式

  • 单例(Singleton)模式: 保证只有一个对象

  • 原型(Prototype)模式: 快速克隆一个自己

  • 工厂(Factory)模式:创建对象最佳方式,不必关心对象细节

    • 工厂方法(FactoryMethod)模式:

      • 简单工厂(一个方法): if-else判断创造对象。缺点是产品线单一
      • 工厂方法(很多方法): 每个产品一个方法
    • 抽象工厂(AbstractFactory)模式:很多工厂+很多方法;

  • 建造者(Builder)模式: 屏蔽过程而不屏蔽细节,如果是必须的细节,就使用构造器

结构型模式

  • 适配器(Adapter)模式: 两个不兼容接口之间适配的桥梁

  • 桥接(Bridge)模式: 连接同一个东西的两个不同维度,相同功能抽象化与实现化解耦,抽象与实现可以独立升级。

  • 代理(Proxy)模式: 动态代理 + cglib

  • 装饰(Decorator)模式:向一个现有的对象添加新的功能,同时又不改变其结构

  • 外观、门面(Facade)模式: 把多个类的多个方法,合成到一个类里面引用,隐藏系统的复杂性

  • 享元(Flyweight)模式:将原对象通过池技术共享

  • 组合(Composite)模式: a里面属性有b(a)对象就是组合

行为型模式

  • 模板方法(Template Method)模式: 父类定义了一个大方法,里面调用了一堆小方法步骤。小方法步骤子类实现即可

  • 策略(Strategy)模式:每一种算法封装成一个策略,根据不同情况使用不同算法策略直接调用

  • 命令(Command)模式:请求封装成对象,请求与执行分隔开(Controller、Service、Dao)

  • 职责链(Chain of Responsibility)模式:所有处理者封装为链式结构,依次调用(Filter、维护链条+游标+递归)

  • 状态(State)模式:和策略很像,状态要维护状态流转。

  • 观察者(Observer)模式:把所有观察者List起来,然后foreach,状态变化通知所有观察者

  • 中介者(Mediator)模式:取消类/对象的直接调用关系,所有类都引入一个类的对象,通过这一个对象调用

  • 迭代器(Iterator)模式:自定义遍历算法。自己本类的迭代器遍历自己本类里面的集合

  • 访问者(Visitor)模式:分离对象结构与元素的执行算法

  • 备忘录(Memento)模式:把复杂对象的关键属性抽取出来进行保存

  • 解释器(Interpreter)模式:定义语法解析规则语法分析,大解析器组合了很多小解释器,进行语法解析

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Anton丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值