簡單工廠模式---計算器
阿新 • • 發佈:2018-03-19
利用 個數 代碼 oid 運算 console col () 程序
一只站在樹上的鳥兒,從來不會害怕”樹枝”會斷裂,因為它相信的不是樹枝,而是自己的翅膀。與其每天擔心未來,不如努力做好現在。因為,成功的路上,只有奮鬥才能給你最大的安全感。
今天寫了一個利用面向對象三大特性(封裝,繼承,多態)以及設計模式實現的計算器程序,使用面向對象特性使代碼易維護,易擴展,使用設計模式可以使程序更加靈活,並且易於復用
具體實現代碼:
先定義一個運算類
1 //運算類
2 public abstract class Operation
3 {
4 private double numberA;
5
6 public abstract double GetResult();
7
8 public double NumberA
9 {
10 get { return numberA; }
11 set { numberA = value; }
12 }
13 private double numberB;
14
15 public double NumberB
16 {
17 get { return numberB; }
18 set { numberB = value; }
19 }
20
21
22 }
加減乘除類繼承運算類
1 //加法類
2 public class OperationAdd:Operation
3 {
4 public override double GetResult()
5 {
6 double result = 0;
7 result=this.NumberA + this.NumberB;
8 return result;
9 }
10 }
11
12
13 //減法類
14 public class OperationSub:Operation
15 {
16 public override double GetResult()
17 {
18 double result = 0;
19 result = this.NumberA - this.NumberB;
20 return result;
21 }
22 }
23
24
25 //乘法類
26 public class OperationMul:Operation
27 {
28 public override double GetResult()
29 {
30 double result = 0;
31 result = this.NumberA * this.NumberB;
32 return result;
33 }
34 }
35
36
37 //除法類
38 public class OperationDiv:Operation
39 {
40 public override double GetResult()
41 {
42 double result = 0;
43 //判斷用戶輸入的除數是非為0
44 if(this.NumberB==0)
45 {
46 //拋出異常,提示用戶除數不能為0
47 throw new Exception("除數不能為0!!!");
48 }
49 result = this.NumberA /this.NumberB;
50 return result;
51 }
52 }
工廠類
1 //簡單工廠
2 public class OperationFactory
3 {
4 //傳入什麽符號就實例化那個方法對象
5 public static Operation createOperate(string operate)
6 {
7 Operation ot = null;
8 switch(operate)
9 {
10 case "+":
11 ot = new OperationAdd();
12 break;
13 case "-":
14 ot = new OperationSub();
15 break;
16 case "*":
17 ot = new OperationMul();
18 break;
19 case "/":
20 ot = new OperationDiv();
21 break;
22 default:
23 Console.WriteLine("請輸入正確符號:");
24 break;
25 }
26 return ot;
27 }
28 }
客戶端(Main方法)
1 static void Main(string[] args)
2 {
3 Console.WriteLine("請輸入第一個數:");
4 double numA =Convert.ToDouble(Console.ReadLine());
5 Console.WriteLine("請輸入第二個數:");
6 double numB = Convert.ToDouble(Console.ReadLine());
7 Console.WriteLine("請輸入運算符號:");
8 string operate = Console.ReadLine();
9 Operation ot = OperationFactory.createOperate(operate);
10 ot.NumberA = numA;
11 ot.NumberB = numB;
12 Console.WriteLine("結果為:"+ot.GetResult());
13 Console.ReadLine();
14 }
使用Java語言現實是大部分都是一樣的
希望對你有所幫助!!!
簡單工廠模式---計算器