6

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

4

1 回答 1

2

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

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

于 2010-09-15T21:04:00.950 回答