Spring5-核心原理-学习 各种设计模式之间的比对

内容都是从Tom老师的书中摘抄,记录下来方便自己学习。

分类设计模式
创建型工厂方法模式、抽象工厂模式、建造者模式、原型模型、单例模型
结构型适配器模型、桥接模型、组合模型、装饰者模型、门面模型、享元模型、代理模型
创建型解释器模式、模板方法模式、责任链模式、命令模式、迭代器模式、调节者模式、备忘录模式、观察者模式、状态模式、策略模式、访问者模式

1、装饰者模式和适配器模式比对
两者都是包装模式,装饰者模式也是一种特殊的代理模式,两者比对如下表:

在这里插入图片描述
2、设计模式之间的关联关系

  • 单例模式和工厂模式:在实际业务中,通常会把工厂类设计为单例模式

  • 策略模式和工厂模式
    (1)工厂模式保护工厂方法模式和抽象工厂模式,是创建型;策略模式属于行为型模式;
    (2) 工厂模式的主要目的是封装好创建逻辑,策略模式接收工厂创建好的对象,从而实现不同的行为。

  • 策略模式和委派模式
    (1)策略模式是委派模式内部的一种实现方式,策略模式关注结果是否能相互替换;
    (2) 委派模式更关注分发和调度的过程。

  • 模板方法模式和工厂方法模式
    工厂方法模式是模板方法模式的一种特殊实现。

  • 模板方法模式和策略模式
    (1)模板方法模式和策略模式都有封装算法;
    (2) 策略模式使不同算法可以相互替换,且不影响客户端应用层的使用;
    (3)模板方法模式针对定义一个算法的流程,将一些有细微差异的部分交给子类实现;
    (4)模板方法模式不能改变算法流程,策略模式可以改变算法流程且可替换。策略模式通常用来代理if…else等条件分支语句。

  • 装饰者模式和代理模式
    (1) 装饰者模式的关注点在于给对象动态的添加方法,而代理模式更加注重控制对象的访问;
    (2) 代理模式通常会在代理类中创建被代理对象的实例,而装饰者模式通常会把被装饰者作为构造参数。

  • 装饰者模式和适配器模式
    (1)装饰者模式和适配器模式都属于包装器模式;
    (2)装饰者模式可以实现与被装饰者相同的接口,或者继承被装饰者作为它的子类,而适配器和被适配者可以实现不同的接口。

  • 适配器模式和静态代理模式
    适配器模式可以结合静态代理模式来实现,保存被适配对象的引用,但不是唯一的实现方式。

  • 适配器模式和策略模式
    在业务复杂的情况下,可利用策略模式优化适配器模式。

Spring 常用的设计模式:

设计模式一句话归纳举例
工厂模式只对结果负责,封装创建过程BeanFactory、Calender
单例模式保证独一无二ApplicationContext、Calender
原型模式ArrayList、PrototyBean
代理模式ProxyFactoryBean、JdkDynamicAopProxy、CglibAopProxy
委派模式DispatcherServlet、BeanDefinitionPaserDelegate
策略模式用户选择、结果统一InstantiationStrategy
模板模式流程标准化,自己实现定制JdbcTemplate、HttpServlet
适配器模式兼容转换头AdvisorAdapter、HandlerAdapter
装饰者模式包装,同宗同源BufferedReader、InputStream、OutputStream、HttpHeadResponseDecorator
观察者模式在任务完成时通知ContextLoaderListener
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值