由於我對C#的理解尚不深入,所以在學習設計模式過程中一併對C#知識進行總結,以供自己以後學習回顧之用。
不規範:
Console.Write("請輸入數字A");
string A = Console.ReadLine();
規範:
Console.Write("請輸入數字A");
string strNumberA = Console.ReadLine();
寫程式時一定要考慮到異常情況,捕捉錯誤並進行異常處理顯得尤為重要。在計算機的例子中考慮到除數可能輸入為0,故應增加該語句。
try-catch 語句由一個 try塊後跟一個或多個 catch 子句構成,這些子句指定不同的例外處理常式。
switch語句是一個控制語句,選擇“開關部分” 從候選列表中執行。
每個開關部分包含一個或多個用例標籤和含有一個或多個語句的列表。
例如:
switch (strOperate) { case "+": strResult = strNumberA + strNumberB; break; case "-": strResult = strNumberA - strNumberB; break; }
物件導向的好處:
物件導向的分析設計編程思想好處在於,可以通過封裝、繼承、多態把程式的耦合度降低,使程式更加靈活,容易修改,並且易於複用。
有人說,初級程式員的工作就是Ctrl+C和Ctrl+V,這樣的話,當代碼中重複多到一定程度,維護的時候就是一場災難。所以我們要儘可能抽象出類,分別進行編程。
簡單原廠模式的核心:
在計算機的例子中,定義Operation運算類,這是一個抽象類別,有NumberA和NumberB兩個屬性以及虛方法GetResult()。再定義子類,可繼承Operation運算類,包括加減乘除,這裡可擴充。接下來用一個特殊的類來執行個體化對象,這就是工廠,如定義OperationFactory類,簡單運算工廠類代碼如下:
public class OperationFactory { public static Operation createOperate(string operate) { Operation oper = null; switch (operate) { case "+": oper = new OperationAdd(); break; case "-": oper = new OperationSub(); break; case"*": oper=new OperationMul(); break; case("/"): oper = new OperationDiv(); break; } return oper; } }
這樣根據輸入運算子工廠就執行個體化出合適的對象,通過多態返回父類的方式實現計算機的結果。