如何结合两个独立的 Java 构建器模式的代码?

我有一段代码如下


 private Product createProduct(ProductParmas params){


   Product product = repository.getProduct(id)

   ProductBuilder.Builder builder = new ProductBuilder.Builder(); // this is a 

                                                            product builder


   if(product ==  null){

         builder.location("abc").quantity(5).price(10)

         if(parmas.getAvaiability() != null){

              builder.availability(parmas.getAvaiability())

         }


   }


   // I also want to set Availability on obj product, but there are no setters so I have to create an instance of ProductBuilder, copy values from product and also set availability. Is there a cleaner way to come both if product is null or not null and set availability field?

}

我还想在 obj 产品上设置可用性,但没有设置器,所以我必须创建 ProductBuilder 的实例,从产品复制值并设置可用性。如果产品为空或不为空并设置可用性字段,是否有更简洁的方法来执行此操作?


HUWWW
浏览 112回答 1
1回答

吃鸡游戏

如果您在该字段上没有设置器,一个好的方法是在您的构建器中添加一个方法,该方法将“产品”作为参数。然后你可以这样做:   Product product = repository.getProduct(id)   ProductBuilder.Builder builder = new ProductBuilder.Builder()   if(product ==  null){     builder.location("abc").quantity(5).price(10)     if(parmas.getAvaiability() != null){          builder.availability(parmas.getAvaiability())     }   } else {      builder.withProduct(product)             .availability(params.getAvailability())   }
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java