我正在尝试通过从项目中删除依赖项并将代码移动到现有 API 来重构 Java 项目中的一些特定 GUI 代码,我们称之为项目 A。我有另一个项目需要基本相同的功能/界面,我想在另一个项目中重用这些功能。
我在 GoF 的设计模式一书中读到了外观设计模式,并认为它可能适用于此。
在阅读 Facade 模式之前,我尝试编写一个名为 IMessagePasser 的接口,它只是用接口方法替换任何项目特定的代码,作为每个客户端实现的合同,例如使用 ProjectAMessagePasser。这似乎处理了 Facade 的一半,允许将 GUI 代码移动到 API。
我想下一步是对项目 A 做同样的事情,通过在 ProjectAMessagePasser 中添加更多方法来替换 GUI 依赖项,以便基本上弄清楚 ProjectBMessagePasser 和 GUI 代码之间的必要通信。
我对大规模代码重组没有很多经验,但这一切看起来合理吗?如果不先进行所有更改就很难说清楚,如果有更好的方法可以做到这一点,我不想浪费大量时间以一种方式进行。