2010-03-29 52 views
4

什麼是重構一個有很多步驟的方法的最佳方式?例如,一種設置某些對象的方法,創建多個對象(例如數據庫表)等等 - 基本上是一種執行一組相關步驟的方法。如何重構執行多個步驟的方法(相互依賴)?

這是否最適合命令設計模式?

謝謝

+3

爲了萬一downvoter再次檢查這篇文章,我真的很想知道爲什麼你downvoted前兩個答案。 – 2010-03-29 17:03:17

+2

你想要重構來完成什麼?通常情況下,如果您的方法變得太大,您可以執行「提取方法」(http://www.refactoring.com/catalog/extractMethod.html),直到它更具可讀性和可維護性。 – 2010-03-29 17:05:38

回答

3

那麼,沒有一般的答案。但是關於您創建和設置對象的示例,請查看Builder PatternFactory Patten。當您有不同的可能操作(例如,通過隊列傳遞的消息)時,命令模式很有用。

有時候,爲了代碼的可讀性,只需在方法中查找語義單元並將其重構爲方法,即使不在別處重用它們也是有益的。一個NotifyAllClients的調用告訴讀者不止一個循環來調用一些調用某種方法的集合。

+0

的確,Eric所說的。爲什麼downvote? – 2010-03-29 17:04:29

+0

我低估了一個不正確的一行;似乎你已經修復了它 我改變了我的投票。 – Pierreten 2010-03-29 17:09:13

+0

@Pierreten:雖然不是必需的,但您可能需要考慮在評論時留下評論以幫助提高SO的整體質量。 http://meta.stackexchange.com/questions/135/encouraging-people-to-explain-down-votes – 2010-03-29 17:24:47

0

重構的其他方法可能會比使用Template Method設計模式提取不同的部分,並且如果將來需要的話可能會進行交換。當你想重新排列方法的不同部分時,甚至可以使用狀態模式。