我想为网站建立一个注册类。这是我的用例——
- 用户将提供用于注册的电子邮件 ID 和密码
- 如果电子邮件 ID 已经存在,那么 Register 类将发送一条错误消息,指出该电子邮件已经存在于我们的系统中
- 如果我们的系统中不存在电子邮件,则 Register 类将在用户电子邮件 ID 中发送一封激活电子邮件并向用户显示消息——一封激活电子邮件已发送到他/她的电子邮件
这是我想到的设计
Interface IRegister
{
string RegisterUser(string email, string password);
}
public class Register:IRegister
{
public string RegisterUser(string email, string password)
{
//Call IsUserExist and SentActivationEmail method internally
}
private bool IsUserExist()
{
}
private void SendActivationEmail()
{
}
}
我不想在 IRegister 中提及 IsUserExist 和 SendActivationEmail 方法,以便它保持简单。现在我可以如何强制实现注册类的开发人员,他/她应该使用 IsUserExist 和 SendActivationEmail 方法并执行用例中提到的所有操作。这种设计是否违反了 SRP 原则?