728x90
최근 국방부오픈소스아카데미라는 곳에서 안드로이드 강좌를 듣고 있는데 한 가지 궁금한 것이 생겼다.
뭐냐하면... 안드로이드는 특정 객체를 만들때 이런 방법을 사용한다. 단순 예이므로 문법은 틀림
Menu.Builder menu = new Menu.Builder();
menu.setImage(mainImg);
menu.setText(mainText);
Menu mainMenu = menu.build();
보통 이런 경우 그냥 menu객체를 생성해서 setter를 쓰면 되지않나싶었는데... 단점이 있다고 한다.
- 객체 일관성이 깨지고(객체를 1회의 호출로 생성하지 않고 이미 생성된 객체에 값을 설정)
- immutable 클래스를 만들 수 없다고 한다.(=스레드 안전성 확보가 어려움)
좀 더 자세한 내용은 나도 모르기에 검색해보고 갖다붙여 쓰는 것 밖에 안되기 때문에 생략하고...
상기된 내용은 Effective java 책에 나오는듯 하다.
결론만 말하자면 디자인패턴을 제대로 공부해봐야겠다 싶은 생각이 들었다.
728x90