gpt4 book ai didi

Java - 这是一个糟糕的设计模式吗?

转载 作者:塔克拉玛干 更新时间:2023-11-01 22:18:10 26 4
gpt4 key购买 nike

在我们的应用中,我见过这样写的代码:

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 编写验证程序。

有没有其他人认为此设计模式有任何问题,或者我只是作为开发人员挑剔?

沃尔特

最佳答案

在返回用户对象时,您让 UserSearchCommand 在现有数据上写入新信息,这可能不是我们想要允许的,因为搜索应该允许读取数据。此外,您所做的是让使用 UserSearchCommand 的人必须知道 User 类的方法/属性/成员,这在第一个实现中不是这种情况。

关于Java - 这是一个糟糕的设计模式吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2560972/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com