程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> C# >> C#入門知識 >> 結合代碼和例子來理解簡單工廠模式

結合代碼和例子來理解簡單工廠模式

編輯:C#入門知識

  簡介 簡單工廠模式的實質是由一個工廠類根據傳入的參數,動態決定應該創建哪一個產品類(這些產品類繼承自一個 父類或接口)的實例。不屬於23個GOF模式,但他可以作為工廠方法模式(Factory Method)的一個引導.屬於創建型模 式,又叫做靜態工廠方法(StaticFactory Method),是眾多工廠模式中最簡單實用的模式。   角色構成 抽象產品角色 定義簡單工廠創造的對象父類,可以是一個類、或者一個接口。 [csharp]   <span style="font-size:18px;">//聲明創建對象的父類   public class Operation   {         privat double _numberA=0;   //聲明一個雙精度變量         private double _numberB=0;         public double NumberA         {           get {return _numberA;}   //當讀取時,取得_numberA=0           set {_numberA=value ;} //可以動態給_numberA賦值            public double NumberA   {             get {return_numberB;}              set {_numberB=value;}   }             public virtual double GetResult()  //重寫GetResult   <span>  </span>{               double result =0;               return result;      }   }</span>   具體產品角色  他是工廠具體加工的對象   [csharp]   <span style="font-size:18px;">// 聲明一個加法操作類,繼承上面的operation   class OperatinAdd:operation    {         public override double GetResult ()         {               double result =0;               result =numberA+numberB;                return result ;   }   }</span>     上面是一個加法具體產品角色,還有減法和乘法、除法類似。 工廠角色 simple factory的核心,含所有實例的內部邏輯,可被客戶端等調用,用來創建產品所需的對象。   他定義了簡單工廠的創造的對象的父類,會在創建的對象的時候繼承此類。他可以是一個接口,可以使一個抽象類。   首先構造一個OperationFactory,以此來創建分配各個操作符之間的邏輯關系。比如:加法,就是在我輸入加法符號   時,創建一個加法操作。其他運算符同理。代碼如下   [csharp]  <span style="font-size:18px;">//簡單工廠類,定義各個操作符之間邏輯   Public class OperateFactory   {        public static Operation createoperate(string operate)   {        operation oper=null;   //聲明一個無引用的變量        switch (operate)   //分支語句來處理邏輯關系        {               case "+":                oper=new OperationAdd();   //創建關於加法的操作                break;                 case  "-":                 oper=new OperationSub();                 break;                  case "*":                  break;                  case "/":                   oper=new OperationDiv();                   break;   }                    return oper;        }   }</span>           以上就是整個的工廠角色,也是整個簡單工廠模式的核心。它處理了操作符之間的邏輯關系,他可以被直接調用用   來處理所輸入的操作符和數字。 總結這個例子,這裡例子分為三部分。我們需要先從簡單工廠模式來說起才顯得完整。        第一部分:構造工廠類,處理操作符之間邏輯關系。        第二部分:創建對象父類。裡面聲明了類的屬性numberA與number B。為下一步在創建對象時直接調用這個屬 性,再利用操作符來對這兩個屬性值進行運算。       第三部分:創建對象,繼承了operation,減少代碼的重復。     

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