遇到多个构造器参数时要考虑使用构建器


多个构造器即为重叠构造器模式,但是参数过多,导致的重叠构造器过多时很容易出问题,比如说构造器中某两个参数位置写反,这时候如果类型都是一样的话,使用上是不会有什么问题的,但是不容易被发现。

所以我们考虑到了用JavaBean模式来弥补这个的问题,即用set方法来解决构造器过多问题,如下:

public NutritionFacts() {
public void setServingSize(int val) { servingSize = val; } 
public void setServings(int val ) { servings = val; } 
public void setCalo ies(int val ) { calo es = val; } 
public void setFat(int val) {fat=val;} 
public void setSodium(int val) {sodium= val; } 
public void setCarbohydrate(int val) { carbohydrate = val ; }
}

但是这样子可能会产生线程安全问题,也会可能因为疏忽大意而弄错set,于是这个时候我们需要一个更好的解决方案。

建造者模式(builder):

类NutritionFacts内部创建一个Builder类,然后NutritionFacts也拥有有参构造函数Builder用Builder来对NutritionFacts进行初始化,然后就具备了可选参数和类层次结构。

原创文章,作者:dweifng,如若转载,请注明出处:https://blog.ytso.com/271587.html

(0)
上一篇 2022年7月5日
下一篇 2022年7月5日

相关推荐

发表回复

登录后才能评论