码迷,mamicode.com
首页 > 其他好文 > 详细

设计模式-策略模式

时间:2018-04-26 14:02:06      阅读:140      评论: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
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!