2009-07-16 64 views
2

我正在重構當前項目中的一些代碼,並且如果以下場景中存在任何設計模式,我想要一些輸入。用於從更復雜的對象構建對象的設計模式

我有一個類,它執行一些邏輯並返回一個包含所述邏輯結果的對象;我們稱之爲Result對象。包含在Result對象中的狀態信息是基於更復雜的對象,中間對象來構造的。

現在,從Intermediary對象填充Result對象的代碼已經存在,但由於我正在重構我想使這個更清潔。我正在考慮創建一個單獨的類,也許稱爲ResultBuilder,它具有一個靜態執行方法,它將中間體作爲輸入並將Result輸出爲結果。

是否有與「ResultBuilder」類相當的設計模式?是否有更好的方法來從中間對象構造Result對象?

回答

2

我相信你想要工廠模式。

1

看來你已經有了解決方案,那麼爲什麼你會發現需要有一些外部資源來爲你命名,這樣它會變得更有效?
如果它對您有意義,而且確實讓事情更清晰更清晰,那就不要過多考慮名稱和標籤。

+3

因此,任何人在將來的代碼處理只需要看到工廠和理解意圖?模式背後的全部基本原理是將通用設計與常用詞彙交流。 – Ken 2009-07-16 22:18:43

+1

因爲已經記錄在案的模式的思考和細化可能有助於告知和提高Todd的設計。因爲它可能是一個解決的問題,並且應用已有的解決方案比從頭開始創建解決方案更容易。因爲現有的解決方案可能比他自己的解決方案更強大。因爲我們從社區學習。 – 2009-07-16 22:19:22

+0

我同意設計模式作爲文檔機制是有用的,但作爲一種面對問題的方式,它最多是有限的。 – shoosh 2009-07-17 00:07:36

1

爲什麼不能Result有一個構造函數,需要一個Intermediary實例?

1

建造者模式!

雖然它通常是一個多部分構建過程....如果它只是讓一兩件事,那麼它更多的是工廠的....

其標準GOF模式

1

我建議看進入BuilderFactory模式,這兩種模式都是四人幫模式。有兩個維基百科上的例子,在Java中也不例外。