1. 程式人生 > >設計模式-策略模式

設計模式-策略模式

設計模式 策略模式

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);

設計模式-策略模式