美文网首页
2021-07-26委派模式与策略模式

2021-07-26委派模式与策略模式

作者: 竹blue | 来源:发表于2021-07-27 08:39 被阅读0次

委派模式—用户调用委派对象,由委派对象将任务进行分配。(委派对象选择调用具体的对象去处理任务)

定义

委派模式(Delegate Pattern):作用是负责任务的调度和任务分配,将任务的分配和执行分开,可以认为是一种特殊情况的静态全权代理属于行为模式

注意:静态代理是结构模式,委派模式是行为模式

应用场景

  • 委派对象本身不知道如何处理请求或任务,把它交给其他对象处理;

  • 实现程序的解耦;

通用写法

委派模式.png

应用场景

ClassLoader.loadClass()

DefaultBeanDefinitionDocumentReader.XX()—delegate //TODO

委派模式优缺点

优点:

通过任务委派能够将一个大型的任务细化,然后通过统一管理这些子任务的完成情况实现任务的跟进,能够加快任务执行的效率。

缺点:

任务委派方式需要根据任务的复杂程度进行不同的改变,在任务比较复杂的情况下可能需要进行多重委派,容易造成紊乱

比较

委派与代理的区别.png

问题:

举例Spring源码中你见过的委派模式,并画出类关系图

策略模式

定义

策略模式(Strategy Pattern):将定义的策略集合分别封装起来,使得他们之间可以互相替换,从而让策略的变化不会影响到使用策略的用户,可以避免多重if ... else ... 和switch语句。属于行为型模式。策略模式通过使用面向对象的继承和多态机制,从而实现同一行为在不同场景下具备不同实现

适用场景

  • 系统中有很多类,他们的区别仅仅在于他们的行为不同。

  • 一个系统需要动态在几种策略中选择一种

  • 需要屏蔽策略规则

通用写法--选择权在用户(单一委派,一般情况下策略模式和委派模式结合使用)

策略模式主要包含三种角色:

  • 上下文(Context):用来操作策略的上下文环境,屏蔽客户端对策略的直接访问,封装可能存在的变化;

  • 抽象策略:规定策略的行为;

  • 具体策略:具体的策略实现;

注意:策略模式中的上下文环境,其职责是隔离客户端与策略类的耦合,让客户端完全与上下文环境沟通,无需关系具体策略。

策略模式.png

策略一般与简单工厂、委派模式结合使用

策略模式前提是用户需要知道有哪些策略

//TODO 两个案例演示

策略模式的优缺点

优点:

  • 策略模式符号开闭原则;

  • 避免使用多重条件转移语句,如if...else...语句、switch语句,将if选择转移给客户来选择

  • 使用策略模式可以提供策略的保密性和安全性;

缺点:

  • 客户端必须知道所有的策略,并且自行决定使用哪一个策略类;

  • 增加多个策略类,增加复杂度

源码使用

Comparator.compare()——比较器(策略)

Arrays.sort().compare()(策略实现)

策略模式的特点:用户选择一种策略进行使用。

问题

利用策略模式重构一段业务代码。

相关文章

  • 2021-07-26委派模式与策略模式

    委派模式—用户调用委派对象,由委派对象将任务进行分配。(委派对象选择调用具体的对象去处理任务) 定义 委派模式(D...

  • 委派模式 java

    委派模式其实并不是常用的二十三种设计模式,它是代理模式和策略模式的组合使用。 举个例子:比如说,boss将任务委派...

  • 3月第二周复盘

    一、空余时间安排 1、专业课程 《设计模式》课上完了原型模式、代理模式、委派模式、策略模式、模板模式和适配器模式,...

  • 实际项目运用之Strategy模式(策略模式)

    1. 策略模式概要 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式通...

  • java23种设计模式-策略模式

    1. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式...

  • 【Java进阶营】java23种设计模式-策略模式

    1. 策略模式的结构 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给不同的对象管理。策略模式...

  • 经典设计模式之策略模式【如何重构聚合支付平台,对接【支付宝,微信

    为什么要使用设计模式重构代码 什么是策略模式 策略模式是对算法的包装,是把使用算法的责任和算法本身分割开来,委派给...

  • 委派模式

    委派模式 委派模式不属于GOF23种设计模式中。委派模式(DelegatePattern)的基本作用就是负责任务的...

  • 设计模式-委派模式

    设计模式-委派模式 定义 委派模式(Delegate Pattern)又叫委托模式,是一种面向对象的设计模式,允许...

  • 6、策略模式(Strategy Pattern)

    1. 策略模式解释 1.1 简介   策略模式是对算法的包装,把使用算法的责任和算法本身分隔开,委派给不同的对象管...

网友评论

      本文标题:2021-07-26委派模式与策略模式

      本文链接:https://www.haomeiwen.com/subject/darwmltx.html