最近帮同学搞个东西,因为功能不复杂,而且权限也简单,就三种,游客,USER,ADMIN.所以我想用不着JIVE那么复杂得模式(至少是权限模式)。设计中有一个类FACTORY,我把它做成APPLICATION BEAN,作用很明显,用来生成和删除USER,FORUM,返回FORUMIterator等。注意,(没有设计成接口,直接实现)。然后我做了一个SESSION BEAN叫 USERBEAN ,里面保存登陆时设置的权限,里面的方法调用USER,FORUM里面的方法操作他们,这样我在调用他们之前就可以判断此用户有没有这个权限,但问题还是来了,USERBEAN里面可以
public void editUser(name,age,……,user) throws permissionExcption
{
if(type == ADMIN)
{
user.editUser(name,age,……);
}
else
{
throw new permissionException();
}
}
但是在FACTORY里面的方法deleteUser也要有权限限制,这下就感觉很不爽了, 会在同个页面中出现这样的调用:
USER = FACTORY.GETUSER(ID);
…………………………………………
USERBEAN.EDITUSER(NAME.AGE,……,USER);
………………………………………………
FACTORY.DELETEUSER(USER,USERBEAN.GETTYPE())//判断权限必须传入
这样调用感觉很乱啊,当时设计就是为了判断权限时方便,而现在看来,感觉它没有完成任务,而又要传到FACTORY里面判断,有点乱啊,当然,怪我当时没想好,但现在改有点来不及了,我想在此基础上做最大的保留,而对这种混乱的局面做个调整,不知道大家有什么建议?或者说保留现在的做法没有关系??
请大家指点,有什么没说清楚,我马上解释,谢谢。
本人设计系统经验不足,大家该骂就骂,该打就打……:)