我正在研究一个我可以有教师,学生等角色的应用程序。一些功能是相似的,所以我也有一个基类用户。用户包含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