本文共 1429 字,大约阅读时间需要 4 分钟。
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);
转载于:https://blog.51cto.com/5591787/2108046