美文网首页
行为型模式-策略模式

行为型模式-策略模式

作者: _day_day_up_ | 来源:发表于2020-07-06 15:59 被阅读0次

针对方法切换,对某个方法进行切换,实现不同的实现方式


策略模式:

在策略模式中,一个类的行为或器算法可以在运行时更改。

在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的context对象。策略对象改变context对象的执行算法。

使用策略模式可以把行为和环境分割开来。环境类负责维持和查询行为类,各种算法则在具体策略类中提供。

意图:定义一系列的算法,把它们一个个封装起来,并且使他们呢可相互替换。

主要解决:在有多种算法相似的情况下,使用 if ... else 所带来的复杂和难以维护。

何时使用:一个系统有许多许多类,而区分它们的只是它们直接的行为。

如何解决:将这些算法封装成一个一个的类,任意的替换。

关键代码:实现同一个接口。

优点:

1.算法可以自由切换。

2.避免使用多重条件判断。

3.扩展性良好。

缺点:

1.策略类会增多。

2.所有策略类都需要对外暴露。

使用场景:

1.如果在一个系统里面有许多类,它们之间的区别仅在于他们的行为,那么使用策略模式可以动态的让一个对象在许多行为中选择一种行为。

2.一个系统需要动态的在几种算法中选择一种。

3.如果一个对象有很多的行为,如果不用恰当的模式,这些行为就只好使用多重的条件选择语句来实现。

注意事项:如果一个系统的策略多余四个,就需要考虑使用混合模式,解决策略类膨胀的问题。

角色:

1、抽象策略(Strategy):这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口;

2、具体策略(Concrete Strategy):实现抽象策略的具体策略类,包装了相关的算法或行为;

3、环境类(Context):持有一个Strategy类的引用并可以根据逻辑选择实例相应的策略。

策略模式

相关文章

  • 设计模式[13]-策略模式-Strategy Pattern

    1.策略模式简介 策略模式(Strategy Patter)是行为型(Behavioral)设计模式,策略模式封装...

  • Android设计模式——策略模式(十一大行为型)

    1.策略模式介绍 策略模式(Strategy Pattern),是十一大行为型设计模式之一。 在开...

  • 23.策略模式(行为型)

    策略模式(行为型) 原书链接设计模式(刘伟) 适应算法灵活性而产生的设计模式——策略模式。 一、相关概述 1). ...

  • 策略模式(行为型)

    概念定义一系列算法,将这些算法封装起来,使他们可以相互替换,同时算法的修改与更新不影响调用它的对象(Context...

  • 行为型-策略模式

    意图: 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 主要解决: 在有多种算法相似的情况下,使...

  • 策略模式 - 行为型

    一、策略模式的定义定义一族算法类,将每个算法分别封装起来,让它们可以互相替换。策略模式可以使算法的变化独立于使用它...

  • 【设计模式】行为型设计模式汇总(二)

    行为型设计模式范围 观察者模式 模板方法 策略模式 职责链模式 状态模式 迭代器模式 访问者模式 备忘录模式 命令...

  • 【设计模式】行为型设计模式汇总(一)

    行为型设计模式范围 观察者模式 模板方法 策略模式 职责链模式 状态模式 迭代器模式 访问者模式 备忘录模式 命令...

  • java 策略模式

    策略模式1.策略模式简介策略模式:策略模式是一种行为型模式,它将对象和行为分开,将行为定义为 一个行为接口 和 具...

  • 行为型设计模式-策略模式

    定义 定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换 解决问题 在有多种算法相似的情况下,使用 i...

网友评论

      本文标题:行为型模式-策略模式

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