the builder pattern simulates named optional parameters as found in Ada and Python- 갑자기 테스트 코드에서 이걸 써보고 싶어졌다.getter/setter처럼 builder도 단축키로 만들어주면 좋으련만 10.12.15 00:26
6 개의 댓글이 있습니다.
저도 이펙티브 자바 보고 셋터 대신 빌더를 쓰는 편인데 워낙 자바의 라이브러리나 프레임워크들이 기본으로 자바빈을 요구하다보니 셋터 없는 객체는 호환성이 떨어지더라고요.
fupfin 저도 되도록 immutable 쓰고 싶은데 같은 클래스라도 소비되는 곳에 따라서 달라지기도 한 것 같아요. .freeze()라도 있으면 도움이 될 것 같기도 하고 ^^;
benelog freeze()를 제공하는 프레임워크가 뭐였죠? 하이버네이트였나? 흠... AOP로 간단히 가능하겠는데요. ㅎㅎ 아니면 custom annotation processor로...
fupfin 아 .Collections.immutableList처럼 freeze하면 decorator로 다시 객체를 반환해주는 방식도 가능할듯도 하네요. 제가 아는 freeze는 Ruby에 있고 java쪽에서 있는 건 잘 모르겠네요 ^^;
fupfin 다시 생각해보니 immultable을 상위클래스로, setter가 있는 것을 하위 클래스로 따로 만들어주는 것이 용도에 따라서 compile-time의 validation이 되니 의미 있는 것도 있을 것 같구요; 아침부터 이상한 고민 중;
benelog 예, 빌더 쓰기 전에 쓰던 기법 중 하나에요. getters만 있는 인터페이스를 사용해도 좋고요.
저도 이펙티브 자바 보고 셋터 대신 빌더를 쓰는 편인데 워낙 자바의 라이브러리나 프레임워크들이 기본으로 자바빈을 요구하다보니 셋터 없는 객체는 호환성이 떨어지더라고요.
10.12.15 01:13fupfin 저도 되도록 immutable 쓰고 싶은데 같은 클래스라도 소비되는 곳에 따라서 달라지기도 한 것 같아요. .freeze()라도 있으면 도움이 될 것 같기도 하고 ^^;
10.12.15 06:10benelog freeze()를 제공하는 프레임워크가 뭐였죠? 하이버네이트였나? 흠... AOP로 간단히 가능하겠는데요. ㅎㅎ 아니면 custom annotation processor로...
10.12.15 07:46fupfin 아 .Collections.immutableList처럼 freeze하면 decorator로 다시 객체를 반환해주는 방식도 가능할듯도 하네요. 제가 아는 freeze는 Ruby에 있고 java쪽에서 있는 건 잘 모르겠네요 ^^;
10.12.15 08:09fupfin 다시 생각해보니 immultable을 상위클래스로, setter가 있는 것을 하위 클래스로 따로 만들어주는 것이 용도에 따라서 compile-time의 validation이 되니 의미 있는 것도 있을 것 같구요; 아침부터 이상한 고민 중;
10.12.15 08:12benelog 예, 빌더 쓰기 전에 쓰던 기법 중 하나에요. getters만 있는 인터페이스를 사용해도 좋고요.
10.12.15 08:38