那些属性是用户信息,用户信息中角色属性
角色类管理所有角色
BLL中实现有业务逻辑,登录时获取角色属性

解决方案 »

  1.   

    关键是不要只盯着固定的静态概念,而应该看“关系”。而最基本的关系只需要有两种:关联、继承。比如按照你的描述,每一个作者都有一个或者多个身份,于是作者和各种角色个体之间是继承关系。比如作者有“姓名、帐号、密码”的属性(实际上,通常要设置一个ID属性来在整个数据库中唯一区分一个对象),那么管理员从作者继承,但是什么新的扩展属性也没有;编辑部人员则扩展了5个新的属性,其中第一个属性是“编辑、副编、主编”的区分标志;专家则扩展了另外4个属性。顺便说一下,对应在关系数据库设计中,可以将父类作为一个表,然后子类的扩展属性作为另一个表,并且使用外键保持与主类中对应记录的级联(级联删除和级联更新)关系。登录、注册是什么意思呢?这要看你写什么软件。如果是做界面,那么通常将登录、注册作为一个独立组件(控件),例如winform中的form或者usercontrol,都是可能的,这些独立的组件当然要比数据模型更有用,因为它们就是软件的目的所在。而如果是做后台数据服务中的登录、注册功能,也是作为独立的服务功能而单独设计,例如你可以此时专心地以一个单独的类来实现一个服务功能,或者是一个独立的static方法(也就是说如果你觉得放在多个模型类中似乎都靠谱,那么不如全都不放,而是放在单独的BusinessLayout类中,这个类是声明为static的类)。当考虑分层操作时,并不是做一个层内部处理的小程序,所以并不是纯粹的面向对象,而是要更多地以面向功能方法去调用其它层的接口功能。