`
yangdc
  • 浏览: 87908 次
  • 来自: ...
文章分类
社区版块
存档分类
最新评论

设计模式 :策略(strategy)

阅读更多
设计模式常读常新

以前只知道策略模式中存在可替换的strategy类。
其实还应该有一个context类,负责给策略提供需要的参数,提供参数的方式有两种:

1 context计算strategy 所需的参数,并传入
该方式会遇到扩展性和效率的问题
扩展性:提供的参数不满足新的策略的要求。
效率:在一些情况下context计算的参数根本不为stratey所用,浪费时间。

2 context传入自己的引用,由strategy自行选择所需的内容

该方式避免了上面的缺点,但会使strategy依赖context,二者紧密耦合,此时需要细致设计context接口。

分享到:
评论

相关推荐

    设计模式:策略模式c++代码

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件工程中,当一个系统需要在不同时间执行不同的算法,或者当一个对象的行为需要随着它的内部状态或外部条件的变化而变化时,策略模式就能派上用场...

    《设计模式:可复用面向对象软件的基础》英文版

    例如责任链模式(Chain of Responsibility)、命令模式(Command)、解释器模式(Interpreter)、迭代器模式(Iterator)、中介者...策略模式(Strategy)、模板方法模式(Template Method)和访问者模式(Visitor)等...

    走进设计模式之 策略模式(Strategy)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件设计中,有时我们需要根据不同的场景或条件选择不同的算法或行为。策略模式允许我们将这些算法封装成独立的类,每个类代表一种策略,然后在运行...

    设计模式:可复用面向对象软件的基础--详细书签版

     “[设计模式]在实用环境下特别有用,因为它分类描述了一组设计良好,表达清楚的面向对象软件设计模式。整个设计模式领域还很新,本书的四位作者也许已占据了这个领域造诣最深的专家中的半数,因而他们定义模式的方法...

    《设计模式:可复用面向对象软件的基础》学习并理解 23 种设计模式

    - **策略模式**(Strategy):定义一系列的算法,把它们一个个封装起来,并且使它们可相互替换。 - **命令模式**(Command):将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化。 - **迭代器...

    设计模式C++学习之策略模式(Strategy)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C++中,策略模式通常通过定义一系列算法类并让它们之间可以互换来实现。这些算法类都实现了一个公共接口,使得它们可以被相同的客户端代码调用,而...

    设计模式之策略模式(Strategy Pattern)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或时间点执行不同算法的情况。策略模式提供了一种灵活的方式来处理这种情况,通过将每种算法封装为一个...

    [行为模式] head first 设计模式之策略模式(strategy)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在软件开发中,我们经常遇到需要根据不同的条件或时间点执行不同算法的情况。策略模式允许我们将这些算法封装成独立的类,使得它们可以互换,从而提高...

    1.《设计模式:可复用面向对象软件的基础(完整书签)》

    《设计模式:可复用面向对象软件的基础》是软件工程领域的一部经典著作,由Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides四位大师合著,被誉为“Gang of Four”(GoF)的经典之作。这本书详细阐述了23...

    设计模式-策略模式(Strategy)

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。这种模式允许你使用算法族,而无需在代码中硬编码这些算法。通过将算法封装到具有共同接口的独立对象中,策略模式使得你可以根据需要灵活地切换算法,...

    C#面向对象设计模式纵横谈(23):(行为型模式) Strategy 策略模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C#中,策略模式经常被用来解决复杂的问题,特别是在需要动态切换算法或行为的场景下。它通过将算法封装到具有独立接口的类中,使得算法可以互相替换...

    设计模式-策略模式-c++版

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在C++中,策略模式主要用于封装一系列算法,并让它们之间可以互相替换,使得算法的变化独立于使用算法的客户。这种模式通常涉及三个主要角色:策略...

    策略(strategy)模式

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在策略模式中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为模式。 在策略模式中,我们创建表示各种策略的对象和一个行为根据...

    设计模式-策略者

    "策略者"(Strategy)设计模式是其中的一种行为模式,它定义了一系列算法,并将每个算法封装起来,使它们可以相互替换。这种模式让算法的变化独立于使用算法的客户。 在《设计模式-策略者》这篇文章中,作者深入浅...

    Java 设计模式-策略模式(Strategy)Android讲解

    策略模式是一种行为设计模式,它使你能在运行时改变对象的行为。在Java中,策略模式是通过定义一系列算法,并将每个算法封装起来,使它们可以相互替换,让算法独立于使用它的客户而变化。这种模式在Android开发中...

    Python 程序语言设计模式思路-行为型模式:策略模式:将算法封装成独立的类,并使它们可以互相替换及支付模式数据压缩

    策略模式(Strategy Pattern)是一种行为型设计模式,旨在将算法封装成独立的类,并使它们可以互相替换。这种模式使得算法的变化独立于使用算法的客户端,从而提供了灵活性和可扩展性。策略模式常用于需要在运行时...

    设计模式之策略模式 鸭子问题

    设计模式之策略模式 鸭子问题 策略模式是一种经典的设计模式,通过鸭子问题,可以让学习者更好地了解设计模式的概念和实现。策略模式的主要思想是定义一系列的算法,并将每一个算法封装起来,使它们可以相互替换。...

    设计模式之策略(Strategy)模式

    这份文档讲诉了设计模式之策略(Strategy)模式,希望可以帮助学习的人!

Global site tag (gtag.js) - Google Analytics