嗨,想在模式上簡單些,卻弄巧成拙,請進給點意見。

henry.t發表於2003-01-14
最近幫同學搞個東西,因為功能不復雜,而且許可權也簡單,就三種,遊客,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裡面判斷,有點亂啊,當然,怪我當時沒想好,但現在改有點來不及了,我想在此基礎上做最大的保留,而對這種混亂的局面做個調整,不知道大家有什麼建議?或者說保留現在的做法沒有關係??
請大家指點,有什麼沒說清楚,我馬上解釋,謝謝。
本人設計系統經驗不足,大家該罵就罵,該打就打……:)

相關文章