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);
創(chuàng)新互聯(lián)建站是一家專業(yè)提供沾益企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、H5響應(yīng)式網(wǎng)站、小程序制作等業(yè)務(wù)。10年已為沾益眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進(jìn)行中。總結(jié):策略模式需要前端傳入具體的業(yè)務(wù)對象給Context配置類,然后通過配置類的getResult獲取所需;
優(yōu)點(diǎn):各個業(yè)務(wù)對象可以互不影響相互替換,
缺點(diǎn):前端需要依賴的對象太多了。
策略模式和工廠模式類似,業(yè)務(wù)對象都是一模一樣,只不過工廠是生產(chǎn)對象, 策略配置類是傳入對象。
工廠和策略結(jié)合后比較好:
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);
創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。