oop - 在尝试遵循 SOLID 原则时,我的类(class)设计有多精细?

标签 oop solid-principles

我有一个名为 IRegistrationService 的客户端注册接口(interface)。这包含一个名为 Register 的方法,它通过类 RegistrationService 实现。例如,如果我想拥有 Delete、Update、Retrieve 的方法,我是否会为每个操作(例如 IDeletionService、IUpdateService、IRetrieveService)创建一个单独的接口(interface),或者只是将所有方法放入 IRegistrationService。我问这个的原因是因为这是 SOLID 原则,尤其是 SRP 原则似乎要问的问题。

最佳答案

单一职责原则的一种表述方式是,一个类应该只有一个改变的理由。这并不一定意味着它只做一件事,而是它只处理一个责任范围。

因此,您的注册服务可以了解人们注册的所有信息,我会在其中包括删除、更新、检索注册。如果注册过程发生变化(例如,您决定向所有新用户或更新用户发送电子邮件),则类(class)会发生变化。但是,如何发送注册电子邮件的实现细节不属于此服务 - 这将是该类可能更改的第二个原因(例如,您意识到您希望通过外部 SMTP 服务器而不是本地发送电子邮件,或者通过SMS 而不是电子邮件等)。

关于oop - 在尝试遵循 SOLID 原则时,我的类(class)设计有多精细?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3720516/

相关文章:

javascript - 如何记录对象的契约(Contract)

java - 在 Java 上制作数据结构的最惯用方法

java - 如何计算牌值在一副牌中出现的次数

c++ - OOP 设计 - protected 成员不在自己的类中使用 - 但仅在子类中使用

spring - 带有违反单一职责原则的 CRUD 方法的类?

java - 如何设计不在/排除查询行为

c# - 如何用 IOC 替换 switch 语句以便我可以保持 SOLID 原则

javascript - javascript 中的继承不起作用

.net - 瘦接口(interface)和胖接口(interface)之间的 "Thin line"是什么?

c# - 具有空方法的接口(interface)与抽象类