程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> C#設計模式之工廠模式(1)

C#設計模式之工廠模式(1)

編輯:C#入門知識

使用設計模式必須首先要理解對象、繼承和接口,一般情況下我們創建對象時采用new的方式,這和程序如何創建對象有關。再進一步思考,很多時候根據程序的需求不同我們要創建對象,因而我們可以將創建過程抽象成一個專門的類中,這樣程序就會更靈活,更通用。   我們可以利用一個共同的基類以完全通用的方式與這些提供程序相關的對象交互。工廠模式裡提供了一個簡單的決策類,它根據提供的數據返回基類中的多個子類的一個。   1.      簡單工廠模式:它的運行一般是根據提供的數據,返回已定義的幾個類中的一個類中的實例。通常它返回的類中都有一個共同的父類和方法,但在每個子類中,該方法的所要執行的任務是不同的,而且根據不同的數據進行了優化。下面是示意圖   示例代碼,這是一個計算器的范例   [csharp]   public class Operation       {           public double NumberA { get; set; }           public double NumberB { get; set; }              public virtual double GetResult()           {               double result = 0;               return result;           }       }          public class OperationAdd : Operation       {           public override double GetResult()           {               double result = NumberA + NumberB;               return result;           }       }          public class OperationSub : Operation       {           public override double GetResult()           {               double result = NumberA - NumberB;               return result;           }       }          public class OPerationMulti : Operation       {           public override double GetResult()           {               double result = NumberA * NumberB;               return result;           }       }          public class OperationDiv : Operation       {           public override double GetResult()           {               double result = NumberA / NumberB;               return result;           }       }   創建簡單工廠 [csharp]   public static Operation Creatoperation(string operate)           {               Operation oper = null;               switch (operate)               {                   case "+":                       oper = new OperationAdd();                       break;                   case "-":                       oper = new OperationSub();                       break;                   case "*":                       oper = new OPerationMulti();                       break;                   case "/":                       oper = new OperationDiv();                       break;                   default:                       break;               }               return oper;           }   調用簡單工廠 [csharp]   Operation oper = new Operation();               oper=SimpleFactory01.Creatoperation("/");               oper.NumberA = 10;               oper.NumberB = 20;               Console.WriteLine(oper.GetResult());               Console.ReadLine();      

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved