abstract class Strategy
{
public abstract void AlgorithmInterface();
}
class StrategyA : Strategy
{
public override void AlgorithmInterface()
{
Console.WriteLine("this is A");
}
}
class StrategyB : Strategy
{
public override void AlgorithmInterface()
{
Console.WriteLine("this is B");
}
}
class Context //根据不同的算法,生成不同的算法类
{
Strategy st;
public Context(Strategy str)
{
this.st = str;
}
public void ConInterface()
{
st.AlgorithmInterface();
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("begin");
Context context;
context = new Context(new StrategyA());
context.ConInterface();
context = new Context(new StrategyB());
context.ConInterface();
}
}
{
public abstract void AlgorithmInterface();
}
class StrategyA : Strategy
{
public override void AlgorithmInterface()
{
Console.WriteLine("this is A");
}
}
class StrategyB : Strategy
{
public override void AlgorithmInterface()
{
Console.WriteLine("this is B");
}
}
class Context //根据不同的算法,生成不同的算法类
{
Strategy st;
public Context(Strategy str)
{
this.st = str;
}
public void ConInterface()
{
st.AlgorithmInterface();
}
}
class Program
{
static void Main(string[] args)
{
Console.WriteLine("begin");
Context context;
context = new Context(new StrategyA());
context.ConInterface();
context = new Context(new StrategyB());
context.ConInterface();
}
}
策略模式实现
本文通过一个简单的示例展示了如何使用策略模式来实现算法的灵活切换。该模式定义了一系列算法,并将每个算法封装起来,使它们可以互相替换。通过Context类调用具体的策略实现,演示了不同策略的具体应用。
1196

被折叠的 条评论
为什么被折叠?



