设计模式之---策略模式

时间:2022-06-01 16:36:21

策略:

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;

}


}
}


   让我再思考思考。