2012-01-28 42 views
1

我正在努力分析我正在處理的問題。我處理一個清潔應用程序,在那裏進行清潔計劃,然後由一些企業完成,最後由該處所的所有者控制。每個狀態的一個命令或一個命令來統治它們全部

當企業已經完成了它的一部分,它必須發送一個命令到應用程序告訴之一:

  • 作業已經完成(起始日期,結束日期)
  • 工作卻沒有這樣做完全是我們的錯(評論)
  • 工作卻沒有這樣做,但它是所有者(ReasonId)

每種方法都可能使用不同的信息的故障。所以我想用3個不同的命令來建模,而不是隻有一個,並添加一個狀態。

但是複雜程度更高一級,因爲企業可能會執行三種主要清潔方式,並且這些清潔方法中可能存在這些問題,您可能會在這些命令中添加不同的內容(例如:要清潔的座位數量,或區域和說明)。

正因爲如此,我已經處理了9個案件。我意識到將所有這些解耦是正確的方式,因爲它可以使未來具有更大的靈活性。

但我在正確的思維,這些3是不同的東西,他們應該不會是隻有一個大的命令,如:

  • 我告訴你我們做什麼(StateOfWork,起始日期,結束日期,評論,ReasonId,NbSeat ,AreaQuantity,AreaDescription ...)

我挺不喜歡半滿的,因爲它涵蓋了太多的東西對象的思想..

感謝您的閱讀,您的想法,

回答

5

你已經爲解耦方法提出了一個很好的例子 - 分離問題是一個很好的使用原則。

如果每個命令具有不同的含義,則應該將其建模爲不同的對象。

如果您將每個狀態更改建模爲不同的對象,則您正在創建事件日誌,並且如果需要它,則可以使用event sourcing

使用(至少)8個參數的方法是一種代碼異味 - 它告訴我方法做得太多,最終會變得非常複雜且難以維護。

+0

非常感謝。非常感謝您的回答。 – Arthis 2012-01-28 18:30:10

相關問題