当前位置: 代码迷 >> java >> 从bean getter中的服务类返回值:是否会损害可读性,并且是“干净的代码”?
  详细解决方案

从bean getter中的服务类返回值:是否会损害可读性,并且是“干净的代码”?

热度:116   发布时间:2023-07-26 13:54:19.0

我目前正在为我的编程课做作业。 我们正在使用JSF(但这是一个可以普遍应用于java的问题),我想知道这是否是一个好习惯:

在家庭作业的第一步中,我应该向bean添加产品列表。 此时看起来像这样:

public class PricelistBean {
    private List<Product> productList;


    public PricelistBean(){
        this.productList = new ArrayList<>();
        this.productList.add(new Product(1001, "electric toothbrush", 23.0f));
        this.productList.add(new Product(1002, "toy boat large", 50.4f));
        this.productList.add(new Product(1003, "dyson vacuum cleaner", 299.0f));
    }
    public List<Product> getProductList() {
        return this.productList;
    }

    public void setProductList(List<Product> productList) {
        this.productList = productList;
    }
}

下一步是将其移至服务类。 现在,我的想法是简单地删除产品列表并将其移至服务类,然后重用get和set并使其修改/返回服务类中的列表,如下所示:

public List<Product> getProductList(){ return this.productListService.getProductList(); };
public void setProductList(List<Product> productList){this.productlistService.setProductList(productList); } ;

这将使我不必在实际面(视图)中进行任何更改。 但是,我不知道这是否被认为是一种好习惯,是否会损害可读性(因为id假设有人读了它,只是从读取视图中的值开始就认为bean中有一个属性,然后感到困惑)。 我不想自欺欺人。

注意:当我说“样式”时,我的意思是我想遵循公认的编码原则,以获取一种相当普遍被接受的“体面”的编码样式。 我知道这个主题不是客观的,但是,如果我们将其限制为普遍接受的干净代码原则,那么我认为这不是没有主题。

将数据与表示/视图(facelet)分开是一个好习惯。 这样,您可以将演示文稿与数据或对数据的任何处理分离。

另一个好处是,如果bean中存在数据,则可以共享bean的状态。 您也可以根据需要将其设为不可变或单例。

  相关解决方案