C#工廠模式的學習(1)簡單工廠模式

C#工廠模式的學習(1)簡單工廠模式 http://blog.csdn.net/weixin_38661736/article/details/79049508

C#工廠模式的學習(2)工廠方法模式 http://blog.csdn.net/weixin_38661736/article/details/79050023

畢業也快半年了,但是由於在現在這個公司只有一個人,因此自己一個人在瞎摸索。因此想寫個博客記錄一下自己的學習日記。

回到正題,工廠模式是C#開發的一種設計模式。主要是方便項目的維護和增加新的功能等。我們在一個項目中,在完成一個功能的時候,我們需要編寫一些實現該功能的類,然後在使用的時候,再實例化該類。但是,在一個項目中,如果有很多個功能,分別由不同的類來實現,那麼我們是不是可以創建一個類,來保存對其他實現了各種功能的類的實例呢?而我們不需要知道具體的類的實現方法,而只需要調用那個保存了各種實例的類就可以了呢?而這就是簡單工廠模式Simple Factory Pattern 通俗的說就是有一個專門的類來負責創建實例的過程。下面邊看代碼邊學習。因此我在CSDN上下了一個項目來學習工廠模式。鏈接爲http://download.csdn.net/download/coderjyf/9825340。分享的博主博客地址爲http://my.csdn.net/coderjyf。該項目裏包含了11個C#的設計模式,分別包括:簡單工廠模式、工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式、適配器模式、裝飾器模式、代理模式、外觀模式、橋街模式。現在,我先根據代碼,學習前三個模式。

一、簡單工廠模式:

項目包含文件:


首先,MobilePhone.cs文件裏面定義了一個抽象方法,方法名稱爲print                                          


然後,再看Iphone、SmarTisan、xiaoMI三個類,都繼承了MobilePhone抽象類,然後重寫實現了print方法

對於這個項目來說,有三個不同的手機品牌,但是他們的關鍵點是都是手機,他們有着一些通用的邏輯,因此我們把它抽取出來,定義一個抽象類來封裝他們的相同邏輯。然後在用具體的類來實現這三個不同品牌的手機時,需要繼承這個抽象類,實現裏面的通用方法。關於抽象類,大家可以看http://blog.csdn.net/dh1221/article/details/45876099和http://blog.csdn.net/ZorroBubble/article/details/16994781。由於有三個手機品牌,而在實際項目裏面,我們可能會有更多的類似於這種的情況,而在這樣的情形下,我們在調用這些類並實例化的時候,就會感覺到很亂且當要修改或其他操作的時候,會很麻煩。此時,如果我們可以創建一個類,用來保存對這些類的實例的話,那麼我們無論是修改或者增加,都只需要在這個類裏面進行操作即可,這樣會大大減少我們的維護成本。這樣的模式稱爲簡單工廠模式,而這個類就叫做工廠類。在這個項目裏面,MobilePhoneFactory就是一個工廠類。代碼如下圖,但是如果傳入的參數是一個枚舉就會更加好。


實際調用的頁面如下,父類出現的地方可以使用子類來實例化。而需要實例化什麼類,就從工廠類裏面調用即可。


簡單工廠模式還是比較簡單的,通過上面的代碼,很容易就可以理解其中的原理。之後我會繼續學習下一個模式:工廠方法模式.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章