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