问题描述
我目前正在为我的编程课做作业。 我们正在使用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中有一个属性,然后感到困惑)。 我不想自欺欺人。
注意:当我说“样式”时,我的意思是我想遵循公认的编码原则,以获取一种相当普遍被接受的“体面”的编码样式。 我知道这个主题不是客观的,但是,如果我们将其限制为普遍接受的干净代码原则,那么我认为这不是没有主题。
1楼
将数据与表示/视图(facelet)分开是一个好习惯。 这样,您可以将演示文稿与数据或对数据的任何处理分离。
另一个好处是,如果bean中存在数据,则可以共享bean的状态。 您也可以根据需要将其设为不可变或单例。