'자바빈'에 해당되는 글 1건
- 2015.01.26 [pattern 03] 자바빈 패턴
2015. 1. 26. 22:19
생성자에 전달하는 인자수가 많은 때 점층적 생성자 패턴과 함께 적용가능한 두번째 패턴은 자바빈 패턴이다.인자가 없는 생성자를 통해 객체를 만든 후, 설정 메서드들을 호출하여 필수, 선택 필드들을 채우는 방법이다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | public class NutritionFacts { private int servingSize = -1; // 필수 private int servings = -1; // 필수 private int calories = 0; // 선택 private int fat = 0; // 선택 private int sodium = 0; // 선택 private int carbohydrate = 0; // 선택 public NutritionFacts() { } // setter public void setServingSize( int val ) { servingSize = val; } public void setServings( int val ) { servings = val; } public void setCalories( int val ) { calories = val; } public void setFat( int val ) { fat = val; } public void setSodium( int val ) { sodium = val; } public void setCarbohydrate( int val ) { carbohydrate = val; } } | cs |
위 코드를 통해 생성자 객체를 생성하고 인자를 넣는 방법은
1 2 3 4 5 6 | NutritionFacts cocaCola = new NutritionFacts(); cocaCola.setServingSize( 240 ); cocaCola.setServings( 8 ); cocaCola.setCalories( 100 ); cocaCola.setSodium( 35 ); cocaCola.setCarbohydrate( 27 ); | cs |
이 패턴은 점층적 생성자 패턴과는 다르게 읽기도 쉽고 생성하기도 좋다. 하지만 이 패턴에는 두가지 심각한 단점이 있는데, 첫번째는 1회의 함수 호출로 객체 생성을 끝낼 수 없으므로, 객체 일관성(consistency)이 일시적으로 깨질 수 있다는 점이고 두번재는 자바빈 패턴으로는 변경 불가능(immutable)클래스를 만들 수 없다는 것이다.
<참고서적 : Effective Java 2/E>
'프로그래밍 이야기 > 안드로이드' 카테고리의 다른 글
[plugins]AndroidStuodio에서 Butterknife사용시 꼭 필요한 plugin 'Zelezny' (0) | 2015.05.19 |
---|---|
[pattern 04] 빌더 패턴 (1) | 2015.01.27 |
[pattern 02] 점층적 생성자 패턴 (0) | 2015.01.25 |
[pattern 01] ViewHolder pattern - (2) (0) | 2015.01.17 |
[pattern 01] ViewHolder pattern- (1) (1) | 2015.01.15 |