當需要乙個相同的介面,但裡面完成內容不同時,就可以用乙個工廠來產生其中的多個類的乙個例項。 通俗說
用來生產同一等級結構中的任意產品
優點:物件導向。包含了必要的邏輯判斷,根據客戶端的選擇條件動態例項化相關的類,對於客戶端來說,去除了與具體產品的依賴。
缺點:新增新的東西需要修改工廠類。
定義乙個用於建立物件的介面,讓子類決定例項化哪乙個類。工廠方法使乙個類的例項化延遲到其子類。
結構圖:
根據依賴倒轉原則,我們把工廠類的抽象出乙個介面,這個介面只有乙個方法,就是建立抽象產品的工廠方法。
工廠方法把簡單工廠的內部邏輯判斷移到了客戶端**來進行,所以,加功能不需要改工廠類,而是修改客戶端。
提供乙個建立一系列相關或相互依賴物件的介面,而無需制定他們具體的類
結構圖:
優點:便於交換產品系列,例項化在乙個應用中只需要初始化的的時候出現一次,它只需要改變工廠即可使用不同的產品配置。
它讓具體的建立實力過程與客戶端分離,客戶端是通過他們的抽象介面操作實力,產品的具體類名也被具體工廠的實現分離,不會出現在客戶**中。
總結:學習是循序漸進的,這三個模式也是一樣,簡單工廠類似子,簡單,最基礎,工廠方法類似父,利用封裝,修改的時候不會改基礎類。抽象工廠就是祖輩,程式設計是門藝術,大批量的改動是非常醜陋的做法。抽象工廠更加有藝術性。
大話設計模式之三世同堂
工廠,又稱製造廠,是一類用以生產貨物的大型工業建築物。大部分工廠都擁有以大型機器或裝置構成的生產線。在世界近代史中泛指資本主義機器大生產,即使用機械化勞動代替手工勞動的資本主義工業場所。在我們設計模式中也生活著這麼一家人,他們分別是簡單工廠模式,工廠方法模式和抽象工廠模式,他們都是屬於建立型設計模式...
咫尺天涯 三世桃花
落地殘花 指尖蒹葭 誰又錯了誰的天涯 千山晚霞 一世紛雜 誰又把誰刻在心頭畫 身影又描摹他 留不住他 換得又一身的牽掛 咫尺天涯 三世桃花 落成燼亦無人回答 灼傷這一池寂寞又浮現誰的臉 撼輪迴依然 訴不清這纏綿 這瞬間謝在掌心的流年漸漸 化風吹散不去的離別 鈴聽塵沙 一生牽掛 已望不見你的天涯 是誰...
C語言的三世輪迴
1.c語言的三世輪迴 c語言是乙個通用的程式語言,它並不 很高階 也不是很龐大,並且和其他語言不同的是,它也並不限於某個特定的應用領域,也不受特定的機器和作業系統的限制,如雷貫耳的unix作業系統,以及其上執行的大部分程式,如我們熟知的ls,cp這些程式都是c語言的傑作,由於c語言很適合用於編譯器 ...