장점
 - 생성에 대한 일관성을 유지한다.
단점
 - 가독성이 좋지않다.
 - 런타임 오류가 발생할 수 있다. (에러잡기가 어렵다.)

생성자에 딸린 몇개씩 추가되는 인자들을 확인하자.
3~4개정도는 쉽게 만들 수 있지만
그 이상 시 순서와 채워넣는 인자를 잘못넣어 실수가 발생할 수 있다.
 
  1. class NutiritionFacts {
  2.         private final int servingSize;
  3.         private final int servings;
  4.  
  5.         // optional
  6.         private final int calories;
  7.         private final int fat;
  8.         private final int sodium;
  9.         private final int carbohydrate;
  10.  
  11.         public NutiritionFacts(int servingSize, int servings, int calories,
  12.                         int fat, int sodium, int carbohydrate) {
  13.                 this.servingSize = servingSize;
  14.                 this.servings = servings;
  15.                 this.calories = calories;
  16.                 this.fat = fat;
  17.                 this.sodium = sodium;
  18.                 this.carbohydrate = carbohydrate;
  19.         }
  20.  
  21.         public NutiritionFacts(int servingSize, int servings) {
  22.                 this(servingSize, servings, 0000);
  23.         }
  24.  
  25.         public NutiritionFacts(int servingSize, int servings, int calories) {
  26.                 this(servingSize, servings, calories, 000);
  27.         }
  28.  
  29.         public NutiritionFacts(int servingSize, int servings, int calories, int fat) {
  30.                 this(servingSize, servings, calories, fat, 00);
  31.         }
  32.  
  33.         public NutiritionFacts(int servingSize, int servings, int calories,
  34.                         int fat, int sodium) {
  35.                 this(servingSize, servings, calories, fat, sodium, 0);
  36.         }
  37.  
  38.         @Override
  39.         public String toString() {
  40.                 return "NutiritionFacts [servingSize=" + servingSize + ", servings="
  41.                                 + servings + ", calories=" + calories + ", fat=" + fat
  42.                                 + ", sodium=" + sodium + ", carbohydrate=" + carbohydrate + "]";
  43.         }
  44. }


'java > design_pattern' 카테고리의 다른 글

Design Pattern 기본 원칙  (0) 2014.06.18
Builder Pattern  (0) 2014.06.17
Java Beans Pattern  (0) 2014.06.17
프론트 컨트롤러 패턴  (0) 2013.05.07
디자인패턴 개인 메모.  (0) 2012.03.29

+ Recent posts