C 簡單工廠設計模式詳述

2021-10-10 09:09:40 字數 1387 閱讀 4971

眾所周知,c#是一種物件導向的語言,而其中封裝,繼承,多型是物件導向的三大重要特徵,簡單工廠的設計模式則可以完全體現這些特徵。要徹底理解這個模式,必須要先將封裝(訪問修飾符的應用)、繼承(基類和派生類的概念)、多型(過載,虛方法,重寫,抽象方法的概念)全部搞懂,並能靈活運用。

簡單工廠模式簡單來說就是建立乙個工廠類,通過輸入的引數建立物件賦值給基類,完成對想要的派生類的呼叫,從而達成目標,具體的操作均在子類中完成,工廠類只負責運算邏輯和給基類賦值。該模式有三部分:

1、工廠類:實現建立所有例項的選擇型別,被外界呼叫的介面。

2、抽象類:所要建立的類的基類,描述類所有例項所共有的公共介面(方法),可以是抽象類也可是介面型別(inte***ce),本例是抽象類。

3、具體類:所有要建立的具體例項物件。

為什麼要用簡單工廠模式來做呢?按照我的理解,原因如下:

通常需要面對的物件會有很多,這就會有很多類產生,而要呼叫類的物件需要對類進行例項化,大家想一下,如果每個類都在主函式內進行例項化,那需要寫很多的**,所以需要通過多型的方法來實現,另外通過工廠類的方法完成對子類物件的例項化,也就是給基類賦值,從而呼叫子類方法。

public abstract class food

然後,建立所有的子類,具體到每個飯。

public class rice : food

public override void menu()

}public class noodles: food

public override void menu()

}public class dumplings : food

public override void menu()

}

然後,核心的部分來了,建立工廠類要實施的方法,其格式為:訪問修飾符+靜態關鍵字+基類名+方法名(引數名),這樣就可以實現子類給基類賦值的功能。

//簡單工廠的核心,根據使用者的輸入建立物件賦值給父類

public static class 老高飯莊

return f;}}

最後,在主函式中對工廠類例項化,我們可以看到,通過工廠類可以實現對任意子類的呼叫。

static void main(string args)

程式顯示

這種模式的優點在於可以只通過引數即可完成對任意子類物件的呼叫,而且便於擴充套件。缺點也很明顯,如果要增加乙個類,那我必須要更改工廠類才能完成,違反開閉原則(乙個軟體實體應當對擴充套件開放,對修改封閉)。

先這樣寫,後面持續更新。

設計模式 簡單工廠模式(C )

一.簡單工廠模式又稱靜態工廠方法模式 static factory method 它不是gof 所講的23種設計模式之一,但是它卻是我們在編碼過程中經常使用的方法之一。1.靜態工廠方法統一管理物件的建立。靜態工廠方法通過傳入的引數判斷決定建立哪乙個產品的例項,封裝了物件的建立,客戶端只管消費,實現了...

C 設計模式 簡單工廠模式

從設計模式的型別上來說,簡單工廠模式是屬於建立型模式,又叫做靜態工廠方法 static factory method 模式,但不屬於23種 gof設計模式之一。簡單工廠模式是由乙個工廠物件決定建立出哪一種產品類的例項。簡單工廠模式是工廠模式家族中最簡單實用的模式,可以理解為是不同工廠模式的乙個特殊實...

C 設計模式 簡單工廠模式

問題描述 之前在公司做了乙個windows 8平台的閱讀器。首先,需要將電子書中的內容渲染到螢幕上,而電子書每一頁都包含各種各樣的內容,比如 圖形 影象和文字等等 不同的內容,就是不同的物件 在將不同的內容渲染到螢幕上之前,就需要new操作,建立不同的物件,然後再在螢幕上進行描繪。這個時候,就需要進...