2012-02-23 35 views
4

功能切換完美適用於新功能 - 在大多數情況下,功能應該簡單地包圍在一些基於功能配置可見或不可見的UI容器中。但是如果新功能需要對現有代碼庫進行大規模更改,那麼如何使用功能切換?我不能使用'複製&更改',因爲顯然它比特性分支差得多 - 我不會遇到任何合併衝突。那麼這些要求的最佳實踐是什麼?當新功能需要對代碼庫進行大規模更改時,如何處理功能切換?

+0

你可以隱藏所有與你想切換的'舊'特徵相關的控件嗎?或者將它們移動到新的UI容器中。例如,在WinAPI中,這只是創建控件列表並執行SetParent SetWindowPos。 – exebook 2013-02-11 05:06:37

回答

1

您可以將功能切換與IoC容器組合,以加載組件的不同實現。例如,切換「A」加載實現「X」,而切換「B」加載實現「Y」。這種方法將允許您維護並行實現,並基於單個切換開啓舊功能和新功能。

+0

這種方法有兩個問題。第一個是在舊代碼中修復的錯誤可能無法在新代碼中修復(雖然單元測試可以幫助這裏)。但是第二個也是一個主要問題是,在創建新的實現之前,舊的應該被重寫(甚至不是重構)。 – Sane 2012-03-26 13:41:00