策略:
namespace 商场管理软件{ class context { private cash cs; public context(cash cs)//构造相应的 函数 这里其实是构造对应不同算法的对象 { this.cs = cs; } public double getResult(double money) { return cs.accepyCash(money);//调用不同的算法 } }}
策略模式是用来封装算法的,但是,在现实生活中可以看到,策略模式是可以封装任何的类型规则。只要在分析过程在不同的时刻调用不同的函数规则就可以。
策略模式相比较于工厂模式:
策略模式将算法封装(也可以理解为类),然后提供一个调用的类 类似与一个统一的接口,具体的实现对应于用户操作时调用来创建的对象来定。
工厂模式将类分装,在工厂类中根据用户的具体需求来创建不同的类,在用户实现时,根据情况产生单一的具体问题的解。
工厂模式:
namespace 商场管理软件
{
class cashFactory
{
public static cash creatcash(string type)
{
cash super = null;
switch (type)
{
case "正常收费":
super = new cashNomal();
break;
case "满300返100":
cashreturn super1 = new cashreturn("300","100");
super = super1;
break;
case "打八折":
cashRebate super2 = new cashRebate(0.8);
super = super2;
break;
}
return super;
}
}
}
让我再思考思考。