2009-11-14 90 views

回答

11

Builder模式用於創建許多對象,由此飛錘圖案爲約共享這樣的對象的集合。

這兩種模式都處理「複合材料」,即可能有幾個元素的物體,但它們根本不需要一起使用。該原型使用情況飛錘就是被反覆使用文本編輯器應用程序(這是在"GoF" book給出的例子)

9

直接來自維基百科。

Flyweight

飛錘是一個軟件設計 模式。輕量級是 通過共享 將盡可能多的數據與其他 類似的對象共享最小化內存使用的對象;當簡單的 重複表示將使用不可接受的內存量時,它是一種大量使用 對象的方法。

Builder

Builder模式是一種軟件 設計模式。其目的是爲了使 對象的構造的 對象的抽象步驟 不同 實現這些步驟可以構造 對象的不同表示。

一個幫助建立對象和其他幫助內存使用。您可以使用構建器來「構建」不同的輕量級對象。

2

輕量級的模式是在適當的時候「許多對象的幾十個字符的池對象必須被操縱,而且這些不能有無關的數據。「在Java中,String對象作爲輕量級進行管理。 Java將所有固定的字符串文字放入文字池中。對於冗餘文字,Java只保留池中的一個副本。

使flyweight工作的關鍵是通過使用工廠方法或生成器設計模式控制對象實例化。工廠方法的工作僅僅是創建對象:給定輸入條件,返回適當類型的對象。

抽象工廠與構建器類似,它也可以構造複雜的對象。主要區別在於Builder模式着重於逐步構建複雜的對象。抽象因素的重點是產品對象的家族(簡單或複雜)。

相關問題