策略模式是实际开发项目用的相对比较多的一个设计模式。策略模式的定义:它定义了算法家族 ,分别封装起来,让他们之间可以相互替换,此模式让算法的变化,不会影响到使用算法的客户。比如:商城的打折促销是个典型的策略模式,根据需要执行不同的命令也是策略模式等等
下面就是策略模式的UML图:
很好理解的一个UML图形,一个接口或者抽象父类,不同的子类实现它并且完成相应的功能。有一个上下文对象(实际应用中,此类可以取消)。客户端调用的时候传入需要使用的哪个子类对象到上下文对象中。
下面来说下我一般使用策略模式的方式:
定义一个接口:
public interface IStrategy
{
//有一个可以表示这个对象的名称 唯一性
string Name{get;}
void Excute();
}
不同的类实现这个接口,然后给予一个唯一性的名称。我最后在前台使用的时候,通过反射机制,将实现了IStrategy接口的类都反射到一个列表(List<IStrategy>中)。前台调用的是时候只需要指定名称,我就能执行操作。
亚洲程序猿 2013/12/12 qq:657224709