如何重构意大利面条代码

时间:2013-09-18 08:17:53

标签: java refactoring

在我的应用程序中,我有一个约2000行的服务,我想重构。我创建了几个较小的服务和划分方法,大到小。所以现在我有例如groupService只能与群组合作,playerService只与玩家合作等等。问题是,有时服务A需要服务B来做一些工作。

示例:我有playOffService与playOff(创建更新...)和finalStandingService一起使用。当更新playOff时我还需要更新finalStanding。我该如何解决这个问题?只需将finalStandingService添加到PlayOffService,还是有更好的解决方案?

1 个答案:

答案 0 :(得分:3)

您正在谈论依赖,这是面向对象软件设计中的常见问题。请查看Dependency Injection上的维基百科文章。

我不一定建议引入新库来为您完成此任务,特别是如果您是新手并且无法自己完全评估库,但您可能会发现一些有用的模式。

在开始重构之前编写完整的服务单元测试!当你一次重构一个小块时,让它们通过。当你完成时,你会感谢自己!