2

我已经开始使用 Linq2Sql 数据访问层,它有一个“God Class”部分类,其中另一个部分是生成的 EntitySet。这个分部类做了各种各样的事情,比如将自己序列化为 Json,进行数据库调用和各种实用功能,以及定义许多方便的属性和方法来与它“分部”的模型进行交互。

这样做的副作用是无法序列化,以及“God Class”反模式的所有其他问题。

拆分这些类以获得更好的关注点分离的良好设计模式是什么?我想强调易于重构,因为这个类遍布整个应用程序。

4

2 回答 2

2

与大多数遗留代码的重构一样,我建议引入一个中间适配器类(请参阅适配器模式),该类开始时仅代表旧功能。然后随着新代码的引入,包装器可以开始将工作委托给新代码。直到最终,可以完全移除包装器。

于 2012-05-24T13:47:51.713 回答
0

另外,我想说你应该尽可能地编写测试(单元或集成)来发现/验证类的各个部分的功能,然后当你重构时,你会确保你没有破坏任何功能因为您将有一组回归测试可以依靠。

于 2012-05-24T13:48:11.640 回答