定义一系列的算法,把他们一个一个的封装起来,并使它们可以相互替换。该模式使得算法可独立使用它的客户而变换。
——《设计模式》GOF
Stratrgy应用比较广泛,比如,有一个文件,要实现生成两种不同字体的文件,这取决于用户的要求,所以我们要准备几套变量字符替代方案.
先在IDAL层定义一个接口来表示生成文件的方法:
public interface IStrategy
{
void FileType(string Types);
}
实现接口:
class StrategyFanti : IStrategy
{
public void FileType(string Types)
{
Console.WriteLine("繁体文件:{0}", Types);
}
}
class StrategyZhongwen : IStrategy
{
public void FileType(string Types)
{
Console.WriteLine("简体文件{0}", Types);
}
}
定义实现方法:
public class Solve
{
IStrategy _strategy = null;
public Solve(IStrategy strategy)
{
this._strategy = strategy;
}
public void Type(string Types)
{
_strategy.FileType(Types);
}
}
调用:
class Program
{
static void Main(string[] args)
{
Solve so = new Solve(new StrategyFanti());
so.Type("策略模式");
}
}
posted @ 2008-03-03 19:49
专研.NET 阅读(108)
评论(1) 编辑 收藏 所属分类:
设计模式