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

簡單設計模式

編輯:C#入門知識

  最近剛剛開始學習程傑老師的大話設計模式,首先是對面向對象基礎知識的補習,例如類、封裝、繼承、多態、接口和事件等概念;其次就開始學習第一個設計模式--簡單工廠模式了。           開始學習,是由小菜面試受挫引出的,基本一整章都是在說代碼的規范化,包括可維護、可復用、可擴展和靈活性等。比較納悶,設計模式怎麼在說這些呢?上網查了資料才得到解釋:           簡單工廠模式不能說是一個設計模式,說它是一種編程習慣可能更恰當些。因為它至少不是Gof23種設計模式之一。但它在實際的編程中經常被用到,而且思想也非常簡單,可以說是工廠方法模式的一個引導吧。           那麼究竟什麼是簡單工廠模式呢?           我的理解是:用一個單獨的工廠類來創建其他類的實例。           簡單工廠模式的主要組成由三種:                   1.工廠(Creator)角色(指概念中的工廠類)                       簡單工廠模式的核心,它負責實現創建所有實例的內部邏輯。工廠類可以被外界直接調用,創建所需的產品對象。                  2.抽象產品(Product)角色(指概念中的其他類)                       簡單工廠模式所創建的所有對象的父類,它負責描述所有實例所共有的公共接口。                  3.具體產品(Concrete Product)角色(指概念中的實例)                       是簡單工廠模式的創建目標,所有創建的對象都是充當這個角色的某個具體類的實例。            示例代碼:   [csharp]   public class OperationFactory     //簡單運算工廠類              {                  public Operation CreateOperate(string operate)  //返回Operation類型的CreateOperate方法語句                  {                      Operation oper = null;                      switch (operate)                      {                          case "+":                              oper = new OperateAdd();                              break ;                          case "-":                              oper = new OperateSub();                              break;                          case "*":                              oper = new OperateMul();                              break;                          case "/":                              oper = new OperateDiv();                              break;                      }                      return oper;                  }                    客戶端的代碼是:   [csharp]   Operation oper;      oper = OperationFactory.CreateOperate("+");      oper.NumberA=1;      oper.NumberB=2;      double result=oper.GetResult();           至此,代碼結束了。通過以上的代碼,我們可以發現簡單工廠模式其實也是有利也有弊的。           利:             1.通過使用工廠類,外界可以從直接創建具體產品對象的尴尬局面擺脫出來,明確了各自的職責和權利,有利於整個軟件體系結構的優化;                2.由於工廠類集中了所有實例的創建邏輯,違反了高內聚責任分配原則;                3.將全部創建邏輯集中到了一個工廠類中;它所能創建的類只能是事先考慮到的,如果需要添加新的類,則就需要改變工廠類了。         弊:                1.當系統中的具體產品類不斷增多時候,可能會出現要求工廠類根據不同條件創建不同實例的需求.這種對條件的判斷和對具體產品類型的判斷交錯在一起,很難避免模塊功能的蔓延,對系統的維護和擴展非常不利。           建議使用情況:                1.工廠類負責創建的對象比較少;                2.客戶只知道傳入工廠類的參數,對於如何創建對象(邏輯)不關心;                3.由於簡單工廠很容易違反高內聚責任分配原則,因此一般只在很簡單的情況下應用。           簡單工廠模式雖不是23種設計模式中的一種,但是它對於編程人員的代碼規范還是有一定啟迪的。我們不能只滿足於寫完代碼運行結果正確就完事,編程是一門技術,更是一門藝術,寫出可維護、可復用、可擴展和靈活性好的代碼,應是我們不斷地追求。            

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