設計模式之 簡單工廠模式

2021-05-26 17:16:09 字數 1254 閱讀 5926

簡單工廠屬於gof設計模式中建立型模式中的一種,又叫靜態工廠方法模式,通常定義乙個類即工廠類來建立其他類得例項,其他類有共同的特性,例如:工廠類可以看做是乙個生產電視機得工廠,他可以生產各種電視機,其他類分別對應各種牌子的電視機,客戶在需要電視機時不需要知道電視機是怎樣生產出來的,或是怎麼拿到的,他只需要知道工廠在哪兒,怎麼樣到工廠去拿電視機,所以工廠模式主要隱藏了產品的建立細節,直接將乙個工廠暴露給客戶,下面舉一些**示例來說明上述問題:

首先我們有乙個公共介面定義產品的型別,這裡以電視機為例:

public inte***cetv

然後電視機有各種不同的牌子,舉例兩種牌子分別是長虹和創維,他們都實現電視這個介面:

public classchanghongtvimplementstv

}public classchuangweitvimplementstv

}最後建立乙個工廠與客戶互動:

public  classtvfactoryelse if("創維".equals(type))else}}

建立客戶,模擬客戶到工廠去拿電視機:

public classmainclass

}簡單工廠主要包括三點:

一、工廠:簡單工廠模式的核心,他主要負責建立所有例項的具體實現,可以被外部直接呼叫,用它可以隱藏具體的實現類,我們只需要了解工廠這一類就知道我們能得到些什麼產品

二、公共介面:公共介面主要是定義乙個產品的大型別,如電視啊,人,水果,動物等,可以有多種實現,即多型

三、具體實現:簡單工廠模式中的具體實現類,比如電視的具體品牌,人中的男人,女人,水果的具體名稱等。。。。。

簡單工廠的實現可以靈活多變,上面只是簡單的說明一下簡單工廠模式,讀者可根據自己的理解測試更多例子。

最後總結一下簡單工廠的優缺點:

優點:簡單工廠的優點如上述所說,裡面具有各種判斷邏輯,可以隱藏具體的實現類,只需要了解工廠裡面的介面就可以得到我們想要的資訊,即隱藏產品建立細節

缺點:缺點也正體現在工廠類上,我們仔細觀察一下會發現,假如新增某個品牌,我們需要修改原**才能實現,這樣違背了開閉原則,而且集中了所有例項的建立邏輯,違背了高內聚的思想,所以擴充套件性並不好,但並不代表我們就不使用簡單工廠了,在某些的需求中我們使用簡單工廠也是乙個非常好的選擇。

設計模式 工廠模式之簡單工廠模式

定義 由乙個工廠物件 工廠類 來指定建立某乙個產品類的例項。使用場景 客戶端只需傳入指定的引數即可,工廠類負責建立的物件較少 因為指定了傳入的引數 介面類 本想用iphone命名的,見諒 public inte ce phone實現介面類 public class huaweiphone imple...

設計模式 工廠模式之簡單工廠

工廠模式可以分為 簡單工廠模式 普通工廠模式 靜態工廠模式 抽象工廠模式 簡單工廠模式 就是如何去例項化物件的問題,對於很容易變化的問題,應該考慮用乙個單獨的類來做這個創造例項的過程,這個單獨的類就是工廠 例子 通過簡單工廠建立各種圖形的實現過程 簡單工廠模式建立步驟 建立乙個介面 例 圖形介面 建...

設計模式 工廠模式之簡單工廠

我們常見的設計模式,大致可以分為三大類 建立型 結構性 行為型。工廠模式,屬於建立型。工廠模式到底起的是什麼作用呢?概括來說就是解耦。當某一類物件需要頻繁建立的時候,就會和程式產生比較大的耦合,在物件初始化屬性較多時,工廠模式可以較少這種耦合,這就是他的作用。一般情況下根據場景不同,工廠模式有幾種不...