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();
}
}