java-Builder 모드

1846 단어
정적 공장과 구축기는 공통된 한계가 있다.그들은 모두 대량의 선택할 수 있는 매개 변수로 잘 확장할 수 없다.Builder 모드를 사용하여 원하는 객체를 직접 생성하지 않고 클라이언트가 필요한 모든 매개변수를 사용하여 구조자를 호출하도록 합니다.
public class Nutrition{
      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 Bulider{
            // 
            private final int servingSize;
            private final int servings;
            // 
            private int calories=0;
            privatre int fas=0;
            private int carbohydrate=0;
            private int sodium=0;
            public Builder(int servingSize,int servings){
                this.servingSize=servingSize;
                this.servings=servings;
             }
            public Builder calories(int val){
                  calories=val;
                  return this;
            }
            public Builder fat(int val){
                   fat=val;
                  return this;
            }
            public Builder carbohydrate(int val){
                  carbohydrate=val;
                  return this;
            }
            public Builder sodium(int val){
                sodium=val;
                return this;
          }
          public Nutrition build(){
                return new Nutrition(this);
          }
      }
      private Nutrition(Builder builder){
            servingSize=builder.servingSize;
            servings=builder.servings;
            calories=builder.calories;  
            fat=builder.fat;
            sodium=builder.sodium;
            carbohydrate=builder.carbohydrate;
      }
}

어떻게 사용하나요?
Nutrition nutr=new Nutrition.Builder(240,8).calories(100).sodium(35).carbohyrate(27).build();

좋은 웹페이지 즐겨찾기