我有一个名为IRegistrationService的客户端注册界面。这包含一个名为Register的方法,它通过类RegistrationService实现。如果我想要删除,更新,检索方法,我会为每个操作创建一个单独的接口,例如IDeletionService,IUpdateService,IRetrieveService,或者只是将所有方法放入IRegistrationService。我之所以这么说是因为这就是SOLID原则,特别是SRP原则似乎要问的问题。
答案 0 :(得分:2)
陈述单一责任原则的一种方式是,一个班级应该只有一个改变的理由。这并不一定意味着它只做一件事,而是只涉及一个责任范围。
因此,您的注册服务可以了解所有有关注册人员的信息,我会在其中包含删除,更新和检索注册信息。如果注册过程发生更改(例如,您决定向所有新用户或更新用户发送电子邮件),则更改类别。但是,注册电子邮件如何发送的实现细节不属于此服务 - 这将是该类可能更改的第二个原因(例如,您意识到您希望通过外部SMTP服务器而不是本地,或通过短信而不是电子邮件等)。