设计模式[7]-Strategy

简介:

Type: Behavioral

Strategy模式:定义一系列的算法,封装每一个,使他们实现通用。让算法相对于使用他的clients可以独立地变化。


#include <iostream>  
using namespace std;  


class Strategy  
{  
public:  
    virtual void execute() = 0;  
};   


class ConcreteStrategyA: public Strategy  
{  
public:  
    void execute()  
    {  
        cout<<"ConcreteStrategyA executed"<<endl;  
    }  
};  


class ConcreteStrategyB: public Strategy  
{  
public:  
    void execute()  
    {  
        cout<<"ConcreteStrategyB executed"<<endl;  
    }  
};  


class Context  
{  
public:  
    Context (Strategy* pStrategy): m_pStrategy(pStrategy){};  
    void setStrategy(Strategy* pStrategy)  
    {  
        m_pStrategy = pStrategy;  
    }  
    void invoke()  
    {  
        if(m_pStrategy != NULL)  
            m_pStrategy->execute();  
    }  
private:  
    Strategy* m_pStrategy;  
};  


int main()  
{  
    Strategy* pStrategy = new ConcreteStrategyA();  
    Context*  pContext  = new Context(pStrategy);  
    pContext->invoke();  
    pStrategy = new ConcreteStrategyB();  
    pContext->setStrategy(pStrategy);  
    pContext->invoke();  

    system("pause");  
    return 0;  
}

目录
相关文章
|
3月前
|
设计模式 算法 Java
行为型设计模式-策略模式(Strategy Pattern)
行为型设计模式-策略模式(Strategy Pattern)
|
6月前
|
设计模式 算法 关系型数据库
设计模式1 - 策略模式【Strategy Pattern】
设计模式1 - 策略模式【Strategy Pattern】
22 0
|
8月前
|
设计模式 算法 搜索推荐
设计模式—策略(Strategy)模式
设计模式—策略(Strategy)模式
131 1
|
4月前
|
设计模式 算法 Java
认真学习设计模式之策略模式(Strategy Pattern)
认真学习设计模式之策略模式(Strategy Pattern)
40 0
|
6月前
|
设计模式 算法 Java
【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)
【设计模式——学习笔记】23种设计模式——策略模式Strategy(原理讲解+应用场景介绍+案例介绍+Java代码实现)
56 0
|
6月前
|
设计模式 算法 Java
设计模式~策略模式(Strategy)-13
在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。策略模式针对一组算法。定义一组算法,将每一个算法封装到具有共同接口的独立的类中,从而使得它们之间可以相互替换。 定义了算法族,
18 0
|
9月前
|
设计模式 算法 安全
Java中23种面试常考的设计模式之策略模式(Strategy)---行为型模式
Java中23种面试常考的设计模式之策略模式(Strategy)---行为型模式
53 1
|
11月前
|
设计模式 算法 Java
Java设计模式-策略模式(Strategy)
Java设计模式-策略模式(Strategy)
|
设计模式 人工智能 算法
设计模式学习(四):Strategy策略模式
Strategy的意思是“策略”,指的是与敌军对垒时行军作战的方法。在编程中,我们可以将它理解为“算法”。无论什么程序,其目的都是解决问题。而为了解决问题,我们又需要编写特定的算法。使用Strategy模式可以整体地替换算法的实现部分,能让我们轻松地以不同的算法去解决同一个问题,这种模式就是Strategy模式。
设计模式学习(四):Strategy策略模式
|
设计模式 算法
设计模式-Strategy策略模式详解
设计模式-Strategy策略模式详解