使用Facade模式更改Java结构

时间:2012-01-13 19:13:30

标签: java design-patterns refactoring facade

我正在尝试重构Java项目中的一些特定GUI代码,让我们称之为项目A,方法是从项目中删除依赖项并将代码移动到现有API。我有另一个项目,它需要基本相同的功能/接口,我想在其他项目中重用这些功能。

我已经阅读了GoF设计模式书中的Facade Design Pattern,并认为它可能适用于此处。

在阅读Facade模式之前,我尝试编写一个名为IMessagePasser的接口,它简单地用接口方法替换任何项目特定代码,作为每个客户端实现的契约,例如使用ProjectAMessagePasser。这似乎涉及Facade的一半,允许将GUI代码移动到API。

我想下一步是对项目A做同样的事情,通过在ProjectAMessagePasser中添加更多方法来替换GUI依赖项,以便基本上弄清楚ProjectBMessagePasser和GUI代码之间的必要通信。

我没有很多大规模重组代码的经验,但这一切看起来都合理吗?如果不首先进行所有更改,很难说清楚,如果有更好的方法,我不想浪费很多时间去做。

1 个答案:

答案 0 :(得分:2)

为了使其更易于管理,您可能希望为应用的功能区域创建服务,并将重点放在那里。随你去,编写单元测试来验证功能。获得服务中的功能后,您可以围绕这些服务创建Facade。

换句话说,分割和征服可能更容易,而不是立即重构整个应用程序。