策略模式:把 使用方法的责任 和 方法本身 分割开,委派给不同的对象负责。
策略模式适用于: 桌面应用程序作为策略持有者,具体的逻辑作为作为策略类。
它把一系列的 方法 包装到一系列的策略类里面。
abstract class Strategy
{
public abstract void Excute();
}
class ConcreteStrategyA:Strategy
{
public override void Excute()
{
//TODO
}
}
class ConcreteStrategyB:Strategy
{
public override void Excute()
{
//TODO
}
}
//策略类的持有者
class StrategyContext
{
private Strategy m_strategy;
public StrategyContext(Strategy strategy)
{
this.m_strategy = strategy;
}
public void Excute()
{
this.m_strategy.Excute();
}
}