文档详情

Java设计模式:Builder模式应用案例.docx

发布:2017-12-15约5.79千字共7页下载文档
文本预览下载声明
在日常开发时,我们经常会遇到要创建包含很多属性的类。我们通常的做法有以下两种。第一种:使用构造函数,在创建对象时进行属性赋值。如下代码:package edu.qiyi.effectjava.e2;/** * * @ClassName: NutritionFacts 营养成分类,在这个类中servingSize和servings是必须要给出的参数。其他的是备选参数。 * @Description: Description of this class * @author a href=mailto:qiyi@Qiyi/a于 2012-8-6 下午02:55:43 */publicclass NutritionFacts {privatefinalintservingSize; privatefinalintservings;privatefinalintcalories;privatefinalintfat;privatefinalintsodium;privatefinalintcarbohydrate;public NutritionFacts(int servingSize, int servings) {this(servingSize, servings, 0); }public NutritionFacts(int servingSize, int servings, int calories) {this(servingSize, servings, calories, 0); }public NutritionFacts(int servingSize, int servings, int calories, int fat) {this(servingSize, servings, calories, fat, 0); }public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium) {this(servingSize, servings, calories, fat, sodium, 0); }public NutritionFacts(int servingSize, int servings, int calories, int fat, int sodium, int carbohydrate) {this.servingSize = servingSize;this.servings = servings;this.calories = calories;this.fat = fat;this.sodium = sodium;this.carbohydrate = carbohydrate; }/** * @param args * @throws */publicstaticvoid main(String[] args) {// TODO Auto-generated method stub//如果你在读这段代码,你能知道20,100代表什么吗? NutritionFacts nf1 = new NutritionFacts(20 , 100);//如果你在读这段代码,你能了解240 , 8 , 100 , 0, 35 , 27 包含什么意思吗?//假如营养成分类中还有100多种其他的营养成分项进行设置,估计谁看这个构造函数都得疯掉。 NutritionFacts nf2 = new NutritionFacts(240 , 8 , 100 , 0, 35 , 27); }}第二种:利用JavaBean方式进行赋值。如下代码:package edu.qiyi.effectjava.e2;/** * * @ClassName: NutritionFacts 营养成分类 JavaBean方式实现。 * ,在这个类中servingSize和servings是必须要给出的参数。其他的是备选参数。 * @Description: Description of this class * @author a href=mailto:qiyi@Qiyi/a于 2012-8-6 下午02:55:43 */publicclass NutritionFacts1 {privateintservingSize = -1;privateintservings = -1;privateintcalories = 0;privateintfat = 0;privateintsodium = 0;privateintcarboh
显示全部
相似文档