這裏的數據是該方案,如何分離業務邏輯
比方說,我有一個用戶類,像這樣:
public class User{
private String firstName;
private String lastName;
//...
// setter, getters
}
然後,我必須像這樣來處理用戶評論類:
public class Comments{
// some fields
public static loadComments(User user, int count){...}
}
到目前爲止非常基本的東西。但是,我想添加一些幫助程序,以便更輕鬆地爲用戶加載註釋。所以我可以在User類中創建一些東西:
final static int defaultCount = 10;
...
public Comment comments(){
return Comments.loadComments(this, defaultCount);
}
我認爲這是一種不必繞過用戶實例的簡單方法。但在這一點上,我很不高興,因爲我已經將用戶bean對象與加載評論的業務邏輯耦合起來。我也保存了用戶類中不應該屬於的默認計數。那麼做到這一點的最好方法是什麼?我的目標是將此對象傳遞給jsp,以便可以調用JSTL函數。我有一個想法,創建一個UserWrapper,看起來像這樣...
public class UserWrapper{
private final static defaultCount = 10;
private final User user;
public UserWrapper(User user){
this.user = user;
}
// should probably cache this but i am not going to show this for simplicity
public Comments getComments(){return Comments.loadComments(user, 10);}
}
我希望我很清楚。我不喜歡使用useBean標籤,因爲它不需要這樣的東西。我希望有一個更清晰的方法來處理這樣的事情!任何幫助,將不勝感激!
編輯:有一件事我忘了提及。我希望能夠在JSTL中使用此代碼。這意味着它必須是一個吸氣。 DAO模型是衆所周知的,但當我的前端開發人員需要編寫一個腳本時,它並沒有太多幫助,或者我需要將它加載到他可能需要或不需要的地方。
嗯,想到它後嗯。我認爲一個更好的問題是,通常DAO都是靜態函數。如果必須將一個參數傳遞給每個函數,會發生什麼情況。讓我們說一個oAuth標記。我認爲在這種情況下,不要只將DAO設爲靜態並使其接受令牌作爲構造函數是有意義的。像新的UseDao(String token);有什麼想法嗎? – 2010-10-27 00:09:20
嗯答案接受:P – 2010-10-28 00:18:26