首页 > 其他 > 详细

设计模式-策略模式

时间:2018-04-26 13:58:20      阅读:217      评论:0      收藏:0      [点我收藏+]
public abstract class baseClass { public abstract double getResult(double num1,double num2); } public class A:baseClass { public overrid double getResult(double num1,double num2) { return num1+num2; } } public class B:baseClass { public overrid double getResult(double num1,double num2) { return num1-num2; } } public class Context { baseClass bc{get;set;} public Context(baseClass _bc) { bc=_bc; } public double getResult(double num1,double num2) { return bc.getResult(num1,num2); } } 前端: A a=new A(); Context c=new Context(a); c.getResult(300,200);

技术分享图片

总结:策略模式需要前端传入具体的业务对象给Context配置类,然后通过配置类的getResult获取所需;
优点:各个业务对象可以互不影响相互替换,
缺点:前端需要依赖的对象太多了。

策略模式和工厂模式类似,业务对象都是一模一样,只不过工厂是生产对象, 策略配置类是传入对象。

工厂和策略结合后比较好:

public class Context
{
       baseClass bc{get;set;}
       public Context(string type)
             {
                         swicth(type)
                         {
                            case “1”:bc=new A();
                                case “2”:bc=new B();
                         }
             }
             public double getResult(double num1,double num2)
             {
                         return bc.getResult(num1,num2);
             }
}
前端:
Context c=new Context(1“”);
c.getResult(300,200);

设计模式-策略模式

原文:http://blog.51cto.com/5591787/2108046

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!