您的位置:首页 > 其它

eff多可选构造参数可考虑构建器

2012-07-12 12:06 232 查看
1 package eff;
2
3 /**
4  * 如果类的构造器或者静态工厂中具有多个参数,设计这种类时,
5  * Builder模式就是不错的选择,特别是大多数参数都是课选的时候。
6  * 相对于javaBean较为安全,适用于多个可选参数的对象创建。
7  *
8  * @author lw
9  *
10  */
11 public class NutritionFacts {
12     // required
13     private final int servingSize;
14     private final int servings;
15     // optional
16     private final int calories;
17     private final int fat;
18     private final int sodium;
19     private final int carbohydrate;
20
21     /** 构建器 */
22     public static class Builder implements IBuilder<NutritionFacts> {
23         private final int servingSize;
24         private final int servings;
25         private int calories;
26         private int fat;
27         private int sodium;
28         private int carbohydrate;
29
30
31         public Builder(int servingSize, int servings) {
32             this.servingSize = servingSize;
33             this.servings = servings;
34         }
35
36         public Builder calories(int val) {
37             calories = val;
38             return this;
39         }
40
41         public Builder fat(int val) {
42             fat = val;
43             return this;
44         }
45
46         public Builder sodium(int val) {
47             sodium = val;
48             return this;
49         }
50
51         public Builder carbohydrate(int val) {
52             carbohydrate = val;
53             return this;
54         }
55
56         public NutritionFacts build() {
57             return new NutritionFacts(this);
58         }
59     }
60
61     public NutritionFacts(Builder builder) {
62         servingSize = builder.servingSize;
63         servings = builder.servings;
64         calories = builder.calories;
65         fat = builder.fat;
66         sodium = builder.sodium;
67         carbohydrate = builder.carbohydrate;
68     }
69
70     public int getServingSize() {
71         return servingSize;
72     }
73
74     public int getServings() {
75         return servings;
76     }
77
78     public int getCalories() {
79         return calories;
80     }
81
82     public int getFat() {
83         return fat;
84     }
85
86     public int getSodium() {
87         return sodium;
88     }
89
90     public int getCarbohydrate() {
91         return carbohydrate;
92     }
93
94 }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: