Stratrgy 策略模式

      定义一系列的算法,把他们一个一个的封装起来,并使它们可以相互替换。该模式使得算法可独立使用它的客户而变换。
                                                                                                                  ——《设计模式》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 love .net FrameWork 阅读(427) 评论(1) 编辑 收藏