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

設計模式之三(工廠方法模式)

編輯:C#入門知識

工廠方法模式:定義一個用於創建對象的接口,讓子類決定實例化那一個類。工廠方法使一個類的實例化延遲到其子類。

簡單工廠模式(http://www.cnblogs.com/aehyok/archive/2013/05/10/3072008.html)的最大優點在於工廠類中包含了必要的邏輯判斷,根據客戶端的選擇條件動態實例化相關的類,對於客戶端來說,去除了與具體產品的依賴。

工廠方法模式實現時,客戶端需要決定實例化那一個工廠來實現運算類,選擇判斷的問題還是存在的,也就是說,工廠方法把簡單工廠的內部邏輯判斷移動到了客戶端代碼來進行。你想要加功能,本來是改工廠類的(簡單工廠模式),而現在是修改客戶端。

 

如果想加一個功能,比如M的N次方,只需要增加此功能的運算類和相應的工廠類就可以了。

 1.第一步寫好運算類:

    
       NumberA { ;   NumberB { ;    result = 

2.那麼接下來就需要實現加減乘除運算類

     
     
        result = = .NumberA + 
        result = = .NumberA -  
     
        result = = .NumberA *  
     
        result =  (.NumberB ==   Exception(= .NumberA / 

第三步寫好抽象工廠

    
     

工廠接口返回的就是運算類

第四步實現加減乘除抽象工廠

     
     
       
     
       
     
       
     
      

第五步進行調用一個加法的示例

      Main(
            IFactory OperationFactory = ===

運行後結果為

 工廠方法模式克服了簡單工廠違背開放-封閉原則的缺點,有保持了封裝對象創建過程的優點。工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多態性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。但缺點是由於每加一個產品,就需要加一個產品工廠的類,增加了額外的開發量。當然還有更好的方案……

如果您對上節的簡單工廠模式還不太了解可以看一下http://www.cnblogs.com/aehyok/archive/2013/05/10/3072008.html

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