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

问题描述 投票:0回答:1

我目前正在为我的编程课做作业。我们使用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和sets并让它修改/返回服务类中的列表,如下所示:

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

这将允许我必须在我的实际facelet(视图)中完全改变。但是,我不知道这是否被认为是良好的做法,如果这会伤害可读性(因为id假设有人读这个只会假设bean中有一个属性来读取视图中的值然后混淆)。我不想教自己一个糟糕的编码风格。

注意:当我说“风格”时,我的意思是我想遵循普遍接受的编码原则来获得一种被普遍认为是“体面”的编码风格。我知道这个主题不客观,但是如果我们将它限制在普遍接受的清洁代码原则中,我认为它不是主题。

java jsf
1个回答
0
投票

将数据与表示/视图(facelet)分开是一种很好的做法。这样,您就可以将演示文稿与数据或任何数据处理分离。

另一个优点是,如果bean中存在数据,则可以共享bean的状态。您可以根据您的要求使其成为不可变或单例。

© www.soinside.com 2019 - 2024. All rights reserved.