我正在研究一個我可以有教師,學生等角色的應用程序。一些功能是相似的,所以我也有一個基類用戶。用戶包含AddRole方法和其他東西。域名設計問題
現在,我希望當教師對象被創建時,「教師」角色被自動分配給對象。我在構造函數中這樣做,但我認爲這很醜陋。下面是代碼:
public class Teacher : User
{
public Teacher()
{
AddRole(new Role() { RoleName = "Teacher"});
}
}
有一個在數據庫中沒有教師表。一切都是基於用戶的。教師只是一個角色,與學生有不同的功能。
我該怎麼辦?
我喜歡這種方法。只是想知道我是否應該向User構造函數發送一個字符串或RoleType枚舉。謝謝! – azamsharp 2009-08-12 03:29:45
我會用某種枚舉,避免使用魔術字符串,並且比較運算符的功能是清晰明確的。 – Tom 2009-08-12 03:31:18
而不是使用字符串或枚舉,那麼使用類型本身呢?例如。公共教師():用戶(typeof(TeacherRole))。這將消除保持類型/枚舉同步的需要。 另一種方法是使用Decorator + Factory/Builder模式,儘管事情可能會非常迅速地變得複雜。 – 2009-08-12 07:33:03