这里的数据是该方案,如何分离业务逻辑
比方说,我有一个用户类,像这样:
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