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(
"策略模式");
        }
    }
Tag标签: 设计模式
posted @ 2008-03-03 19:49 专研.NET 阅读(108) 评论(1)  编辑 收藏 所属分类: 设计模式

  回复  引用  查看    
#1楼 2008-04-28 16:39 | 土星的狗狗      
用处不是很大

标题  
姓名  
主页
Email (只有博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2008-03-03 20:20 编辑过