// 工廠生成物件類
public class operationfactory
return opera;
}}// 運算子基類
public abstract class operationclass
public double numb
public abstract double getresult();
}// 加號類
public class addoperation : operationclass
}// 減號類
public class suboperation : operationclass
}// 除號類
public class divoperation : operationclass
return numa / numb;
}catch (dividebyzeroexception ex)
return 0;
}}// 乘號類
public class muloperation : operationclass
}// 開根號類
public class sqrtoperation : operationclass
}// 業務運用類
public class operationoutput
while (ope == null);
console.writeline("請輸入第乙個數字");
ope.numa = double.parse(console.readline());
if (!(ope is sqrtoperation))
console.writeline("結果是:" + ope.getresult());
console.writeline();
}}
1)缺點:每新增一種操作,就需要修改 operationfactory 類的 getoperation(string operationtype) 方法,這違法了對擴充套件開放,對修改封閉的原則。2)可通過工廠模式、抽象工廠的方式得到適當改善,可通過反射徹底改善。
設計模式 1 簡單工廠模式
簡單工廠模式屬於建立型的設計模式,其特點是使用乙個工廠生產所有的類物件,通過在工廠類中進行判斷,然後建立需要的功能類。優點 不必使用具體的功能類去建立該類的例項。缺點 新增乙個功能類就需要在工廠類中增加乙個判斷。此處利用 這4個operation來生成不同的operation物件來說明簡單工廠模式。...
設計模式 1 簡單工廠模式
總結簡單工廠設計模式就是為了能夠根據不同情況動態獲取到需要的型別 在本次將會演示乙個計算器的功能 我們無法知道使用者在程式中會輸入哪些字元,是 或者其他,但是我們能確定的是使用者需要通過輸入將兩個值進行運算,得到乙個返回結果。那麼在此處我們就可以建立乙個演算法基類,有設定值並計算後返回值的方法,值1...
設計模式(1) 簡單工廠模式
例項化物件的時候不再使用 new object 形式,可以根據使用者的選擇條件來例項化相關的類。對於客戶端來說,去除了具體的類的依賴。只需要給出具體例項的描述給工廠,工廠就會自動返回具體的例項物件。todo classname operation description 運算類 public cla...