• 学点设计模式,盘点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)模式:定义语法解析规则语法分析,大解析器组合了很多小解释器,进行语法解析

  • 相关阅读:
    Spring @Transactional事务管理
    如何使用PowerShell批量删除注册表项
    记录一次成功的frida编译
    19c-rac环境安装AHF
    木棒组合问题
    【PostgreSql本地备份为dump文件与恢复】使用脚本一键备份为dump文件
    LeetCode75-06:移动零
    仕兰微、华为、汉王、凹凸科技、南山之桥、周立功等公司常见FPGA面试题整理
    Java项目:ssm超市订单管理
    初阶指针(1)
  • 原文地址:https://blog.csdn.net/NICK_53/article/details/127762298