我想爲網站建立一個Register類。這裏是我的使用情況 -我的設計遵循單一職責原則嗎?
- 用戶將註冊
- 提供電子郵件ID &密碼如果電子郵件ID已經存在,那麼註冊類將發送一個錯誤信息,此電子郵件在我們的系統中已存在
- 如果電子郵件沒有在我們的syetem存在,那麼註冊類會在發送電子郵件的用戶ID和顯示消息激活電子郵件發送至用戶 - 一個激活郵件已發送到他/ SER電子郵件
這裏的設計,我想到了
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原則?
請記住,設計模式只是指導方針。事實上,許多設計原則是矛盾的,因爲總是存在折衷。 – Antimony