上一節說到抽象工廠模式:
所謂的抽象工廠模式,就是在同乙個工廠中可以生產出同一種型別或者同一系列的多種產品。
今天說說工廠模式中另一種型別:建造者模式
顧名思義,建造者模式是想構建出乙個針對於某種或者一些產品的建造者,通過這個建造者來完成這種產品的從開始到結束的全部生產過程,最後得到成品。
比如,前面我們說到蘋果手機,華為手機的生產問題以及包裝出貨問題。我們用到了抽象工廠設計模式,將一種型別手機的整個包裝的所有關聯操作放置到同乙個工廠中進行生產。但是,我們會發現這個裡面少了乙個非常重要的環節,那就是最後的打包產品並沒有。
為了讓整個手機的從 「生產」 到 「測試」 再到 「打包封裝」 直到返回乙個真正的可以發貨的產品這樣乙個完整的過程可以由乙個導演來進行執行,那麼我們如何來創造這個導演。這裡就需要使用到建造這模式。
1、先定義乙個手機產品建立者介面
/**
* 手機產品建造者
*/public inte***ce phonebuilder
2、建立蘋果手機建造者實現類
/**
* 蘋果手機產品建立者
*/public class iphonebuilder implements phonebuilder
@override
public void buildheadset()
@override
public void buildcharger()
@override
public void buildinstructions()
@override
public void buildbox()
@override
public void test()
/*** 建立最終產品
* @return iphone產品
*/@override
public phoneproduct buildproduct()
/*** 校驗產品零件是否缺少
*/private void checkproduct()
}/**
* 建立完成後清除零件
*/private void clear()
}
這樣我們在建立乙個完整的蘋果手機時,只需要將建立者先建立出來,然後由建立者來建立蘋果手機產品就可以了!
如下:
public static void main(string args)
注意:這裡的建造者並不是執行緒安全的,所以乙個建造者只能被乙個執行緒使用,但是乙個執行緒可以使用多個建造者!
這樣建立乙個手機產品的過程是不是更加清晰明了,如果想同時建立多個產品,我們可以例項化多個建立者來進行操作。是不是很方便呢!
Java23種設計模式之裝飾者模式
描述 動態的給物件新增一些額外的屬性或行為。相比於使用繼承,裝飾者模式更加靈活。也就是如果想對已經存在的物件進行裝飾,那麼就定義乙個類,在類中對已經有的物件進行功能的增強或新增另外的行為,這個類就叫裝飾者類,被修飾的類叫被裝飾者類,是已經存在有的功能。在裝飾者類之間又可以互相裝飾。要實現裝飾者模式,...
Java23種設計模式
定義 設計模式 design pattern 是一套反覆使用 多數人知曉的 經過分類編目的 設計經驗的總結。使用設計模式是為了可重用 讓 更容易被他人理解 保證 可靠性。單例模式,特點 全域性只有乙個例項。定義 單例模式,也叫單子模式,是一種常用的軟體設計模式。在應用這個模式的時候,單例物件的類必須...
Java23種設計模式
建立型模式,共五種 工廠方法模式 抽象工廠模式 單例模式 建造者模式 原型模式。結構型模式,共七種 介面卡模式 裝飾器模式 模式 外觀模式 橋接模式 組合模式 享元模式。行為型模式,共十一種 策略模式 模板方法模式 觀察者模式 迭代子模式 責任鏈模式 命令模式 備忘錄模 式 狀態模式 訪問者模式 中...