value object를 사용을 하고 싶은데, 자바빈 규약을 따르기 위해서 setter를 만드는 경우가 있다.
보통의 경우 찜찜하게 setter를 만드는 경우가 많은데, 그 setter를 최대한 숨겨서 처리가 가능하다.
이 문제를 해결하기 위해서 EP님은 다음과 같은 포스트를 남겼다.
mutable코드가 있는 포스트 : http://colus.egloos.com/4023119
protected 접근자 덕택에 같은 패키지 내에서 직접 프러퍼티에 접근이 되는 것을 제외하고는 쓸만했다.
포스트 내에서 만든 클래스를 다음과 같이 사용을 해봤다.
public void test_Mutable() throws Exception {
String title = "ㅎㅎㅎ제목입니다";
String content = "여기는 본문입니다.";
Post post1 = new Post();
post1.title = title;
post1.content = content;
assertEquals(title, post1.getTitle());
assertEquals(content, post1.getContent());
Post post2 = new Post(title, content);
assertEquals(title, post2.getTitle());
assertEquals(content, post2.getContent());
Post.Mutable post3= new Post.Mutable();
post3.setTitle(title);
post3.setContent(content);
assertEquals(title, post3.getTitle());
assertEquals(content, post3.getContent());
}
재미있는 아이디어라는 생각이 든다.
