- Consider static factory methods instead of constructors(考虑使用静态工场函数替代构造函数)
public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; }
- Consider a builder when faced with many constructor parameters(当构造函数需要处理很多参数的时候,考虑使用构造器Builder)
public class NutritionFacts { private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; private final int carbohydrate; public static class Builder { private final int servingSize; private final int servings; private int calories; private int fat; private int sodium; private int carbohydrate; public Builder(int servingSize, int servings) { this.servingSize = servingSize; this.servings = servings; } public Builder calories(int calories) { this.calories = calories; return this; } public Builder fat(int fat) { this.fat = fat; return this; } public Builder sodium(int sodium) { this.sodium = sodium; return this; } public Builder carbohydrate(int carbohydrate) { this.carbohydrate = carbohydrate; return this; } public NutritionFacts build() { return new NutritionFacts(this); } } private NutritionFacts(Builder builder) { servingSize = builder.servingSize; servings = builder.servings; calories = builder.calories; fat = builder.fat; sodium = builder.sodium; carbohydrate = builder.carbohydrate; } public int getServingSize() { return servingSize; } public int getServings() { return servings; } public int getCalories() { return calories; } public int getFat() { return fat; } public int getSodium() { return sodium; } public int getCarbohydrate() { return carbohydrate; } public static void main(String[] args) { NutritionFacts nutritionFacts = new NutritionFacts.Builder(240, 8) .calories(100).sodium(35).carbohydrate(27).build(); } }
- end
Creating and Destroying Objects(创建和销毁对象)
最新推荐文章于 2022-02-01 19:04:11 发布