以下是情景描述:
假设我有一个用户类,如下所示:
public class User{
private String firstName;
private String lastName;
//...
// setter, getters
}
然后我有一个类来处理用户评论,代码如下:
public class Comments{
// some fields
public static loadComments(User user, int count){...}
}
到目前为止,这些都是非常基础的内容。然而,我当然想添加一些辅助功能,以便更轻松地为用户加载评论。因此,我可以在用户类中创建一些东西:
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中使用此代码。这意味着它必须是一个getter。DAO模型很出名,但当我的前端开发者需要编写脚本或我需要为他可能需要或可能不需要的地方加载它时,并没有太大帮助。