1

我有保存到数据库的持久对象(插入、更新、删除)。将这种逻辑组合在一个方法中是否更好 - 保存或有 3 个单独的凝聚方法?

4

3 回答 3

1

您绝对不应该将它们组合成一个方法,因为这会违反单一职责原则(我根据自己的经验发现它适用于方法设计和类设计)并且会增加圈复杂度,从而增加测试工作量。

出于同样的原因,您可能希望有一个专门用于该目的的类,该类具有这 3 种方法。

关于凝聚力,相关(如您的情况)并放置在一个类中的 3 个独立方法将保持良好的凝聚力,但请记住其他类设计原则

于 2011-05-02T23:57:40.743 回答
0

我的偏好可能是拥有一个公共 Save 方法,并让该函数根据需要调用 Insert、Update 或 Delete 方法。这些方法可以是受保护的或私有的,只要符合设计即可。

[编辑]:我应该补充一点,我可能不会将该代码放在模型类中,而是将其移动到它自己的存储库类中。我发现保持模型类非常简单可以为您的设计提供最大的灵活性。

于 2011-05-02T23:55:30.743 回答
0

这真的取决于。一般来说,我会将删除分开,并且我倾向于使用单一方法进行更新/插入。

于 2011-05-02T23:41:59.670 回答