Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有保存到数据库的持久对象(插入、更新、删除)。将这种逻辑组合在一个方法中是否更好 - 保存或有 3 个单独的凝聚方法?
您绝对不应该将它们组合成一个方法,因为这会违反单一职责原则(我根据自己的经验发现它适用于方法设计和类设计)并且会增加圈复杂度,从而增加测试工作量。
出于同样的原因,您可能希望有一个专门用于该目的的类,该类具有这 3 种方法。
关于凝聚力,相关(如您的情况)并放置在一个类中的 3 个独立方法将保持良好的凝聚力,但请记住其他类设计原则。
我的偏好可能是拥有一个公共 Save 方法,并让该函数根据需要调用 Insert、Update 或 Delete 方法。这些方法可以是受保护的或私有的,只要符合设计即可。
[编辑]:我应该补充一点,我可能不会将该代码放在模型类中,而是将其移动到它自己的存储库类中。我发现保持模型类非常简单可以为您的设计提供最大的灵活性。
这真的取决于。一般来说,我会将删除分开,并且我倾向于使用单一方法进行更新/插入。