2017-06-14 153 views
0

我想要創建基於其他幾個對象創建的對象。我想用生成器模式但我有一些疑惑。我可以看到構建器模式的所有示例都顯示構建器具有簡單的方法(例如withName(),withSurname()等)。每種方法都將輸入參數分配給構建器中的字段。然後build()方法創建目標對象。創建對象的設計模式

我想使用更復雜的對象作爲這些方法的參數。在其中一些方法中,我將會有更復雜的邏輯來創建將在構建器中分配的字段值。

建造者模式正確的選擇嗎?構建器方法可以有更復雜的邏輯嗎?我應該使用另一種設計模式嗎?

+0

IIRC,構建模式的動機是避免具有許多參數和許多重載構造函數的膨脹構造函數。我不認爲建設者方法的複雜性必須被限制在簡單的任務上。但是,我會比較建造者和工廠,看看哪個更適合。 –

+0

這可能是有用的https://stackoverflow.com/questions/757743/what-is-the-difference-between-builder-design-pattern-and-factory-design-pattern –

回答

2

編程不是跟隨T的模式。 如果標準模式不適合,請自己製作。他們作爲指導,因爲他們展示了經過良好測試的設計。

在這種情況下,如果有必要的話,您可以使用複雜的方法,我以前見過這樣的構建器。