User.java(用户实体)
public class User
{
protected String firstName;
protected String lastName;
...
getters/setters (regular POJO)
}
UserSearchCommand
{
protected List<User> users;
protected int currentPage;
protected int sortColumnIndex;
protected SortOder sortOrder;
// the current user we're editing, if at all
protected User user;
public String getFirstName()
{return(user.getFirstName());}
public String getLastName()
{return(user.getLastName());}
}
根据我的经验,这个模式或反模式看起来很糟糕。首先,我们将几个关注点混合在一起。虽然它们都与用户相关,但偏离了典型的POJO设计。如果我们要采取这种方法,那么难道不应该这样做吗?
UserSearchCommand
{
protected List<User> users;
protected int currentPage;
protected int sortColumnIndex;
protected SortOder sortOrder;
// the current user we're editing, if at all
protected User user;
public User getUser()
{return(user);}
}
我们只需返回用户对象,然后可以随意调用它上面的任何方法?由于这与典型的bean开发非常不同,因此JSR 303的bean验证对于这种模型不起作用,我们必须为每个bean编写验证器。
还有其他人认为这种设计模式有什么问题,还是我作为开发人员太过挑剔?
沃尔特