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

c#工廠模式與抽象工廠模式

編輯:C#入門知識

一、 工廠方法(Factory Method)模式

工廠方法(FactoryMethod)模式是類的創建模式,其用意是定義一個創建產品對象的工廠接口,將實際創建工作推遲到子類中。

工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了多態性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。

在工廠方法模式中,核心的工廠類不再負責所有產品的創建,而是將具體創建工作交給子類去做。這個核心類僅僅負責給出具體工廠必須實現的接口,而不接觸哪一個產品類被實例化這種細節。這使得工廠方法模式可以允許系統在不修改工廠角色的情況下引進新產品。

在Factory Method模式中,工廠類與產品類往往具有平行的等級結構,它們之間一一對應。

二、 Factory Method模式角色與結構:

抽象工廠(Creator)角色:是工廠方法模式的核心,與應用程序無關。任何在模式中創建的對象的工廠類必須實現這個接口。

具體工廠(Concrete Creator)角色:這是實現抽象工廠接口的具體工廠類,包含與應用程序密切相關的邏輯,並且受到應用程序調用以創建產品對象。

抽象產品(Product)角色:工廠方法模式所創建的對象的超類型,也就是產品對象的共同父類或共同擁有的接口。

具體產品(Concrete Product)角色:這個角色實現了抽象產品角色所定義的接口。某具體產品有專門的具體工廠創建,它們之間往往一一對應。

 

 工廠模式與抽象工廠模式是應用得比較多的構造型模式,先簡單的介紹一下這種構造模式的應用背景:         在開發一個類的過程中,我們一般都要為這個類開發相應的構造函數(不過大部分情況下,.NET開發環境會自動默認創建構造函數),這樣,使用這個類的客戶可以利用構造函數對這個類進行實例化.但是,有時候會出現這種情況:需要使用一個對象的客戶並不知道(或者不應該知道)應該對幾個類中的哪個類進行初始化.面對這個問題,我們可以利用工廠模式定義一個接口,客戶可以使用這個接口創建一個對象.同時我們還可以控制對哪個類進行實例化,實例化過程使用了一個方法,這個方法需要利用外部因素來確定對哪個類進行實例化.有時候,這些外部因素就是一個龐大的研究主題,並且往往會涉及到多個類.為此,抽象工廠模式就應用於這種場合,其目的是為了提供一個創建一系

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