設計模式之Factory

2022-02-23 16:25:20 字數 606 閱讀 1329

工廠模式就是專門負責例項化大量相同介面的類。簡單的工廠模式用《head first》中的例子就要生產不同的比薩,只需要告訴工廠你要什麼樣的比薩,它就會給你生產出來。這樣的**如下:

想一下簡單的工廠模式為我們做了什麼?相當於把生成物件的這個功能分離出去,也就是解耦讓**變得簡單。這樣做還有乙個好處就是,在別人呼叫這個工廠的時候,不僅能簡單地返回乙個物件,還可以完成一些想要的操作。把這些操作放在這裡就可以強制、統一地進行了。

這樣做的初衷是想讓**盡量地簡單,但是現在情況可能並不怎麼好,因為在乙個比薩工廠中要考慮所有的情況,而且在有所改變的時候又需要修改**。這樣本金功能簡單的工廠類中的**也開始變得複雜。其實這個解決方法很簡單,對工廠也做一次抽象就好了:

到這裡,我們解耦已經很徹底了,但是馬上就會發現新的問題?如果甜的、辣的各種比薩都有乙個特定的類去實現,那比薩的數量是相當龐大的,所以工廠模式中的工廠是需要好好設計的,應該可以看做解耦與類數目之間的平衡吧。

設計模式之Factory

工廠模式主要是 為了建立物件而提供的介面。1.如下是乙個簡單的工廠類 在程式中,如果要例項化sample時.就使用 sample samplea factory.creator 1 就可。2.如下是更高一點的 抽象工廠模式。如果建立物件的方法變得複雜了,如上面的是建立乙個sample物件,這邊要是還...

設計模式之Factory

最近開始對設計模式產生了興趣,於是翻來 四人幫 的 設計模式 來看,發現很難懂,真不是我這小小的本科生能夠輕易理解的,算了,我還是先看看旁人的學習成果吧,拿來研究了一下,發現工程模式並不是很難 當然我只是說思想 挺容易上手的,閒話不多說,總結一下吧。模式名稱 工廠模式 別名 kit 說明 工廠模式包...

設計模式之Factory模式

今天開始學習設計模式,設計模式之於物件導向程式設計的作用就像演算法之於面向過程的程式設計一般重要。首先從factory模式開始。factory模式 它們給一系列有聯絡的物件提供了建立的介面,而不用顯式地明確類名。解決的問題有兩類 1.為了提高內聚,松耦合,我們會抽象出一些類的公共介面以形成公共基類或...