2012-01-13 17 views
2

我正在嘗試重構Java項目中的某些特定GUI代碼,我們將其稱爲項目A,方法是從項目中除去依賴項並將代碼移至現有API。我有另一個需要基本相同的功能/接口的項目,我想在其他項目中重用這些功能。具有門面模式的Java結構變化

我已閱讀GoF的設計模式書中的Facade Design Pattern,並認爲它可能適用於此。

在閱讀Facade模式之前,我試圖編寫一個名爲IMessagePasser的接口,它只是用接口方法替換任何項目特定的代碼,作爲每個客戶端實現的協議,例如ProjectAMessagePasser。這似乎涉及Facade的一半,允許將GUI代碼移至API。

我想下一步就是對項目A做同樣的事情,在ProjectAMessagePasser中添加更多的方法來替換GUI依賴項,以便基本找出ProjectBMessagePasser和GUI代碼之間的必要通信。

我沒有很多大規模重構代碼的經驗,但這一切看起來是否合理?如果沒有首先做出所有的改變,很難說清楚,如果有更好的方法來做到這一點,我不想浪費大量時間做這件事。

回答

2

爲了使其更易於管理,您可能需要爲應用程序的功能區域創建服務,並將重點放在那裏。在你去的時候,編寫單元測試來驗證功能。一旦你有服務的功能,你可以創建一個圍繞這些服務的Facade。

換句話說,它可能更容易分而治之,而不是一次重構整個應用程序。

+0

我想了解更多關於這種新的,看似非常令人滿意的「分而治之」的方法;-)(抱歉,無法抗拒...) – 2012-01-13 19:37:01

+0

aasmund lol facepalm – hvgotcodes 2012-01-13 19:39:23

+0

這聽起來像一個很好的解決方案,我會試試這個。 – ekangas 2012-01-17 21:53:27