Method chaining - Wikipidea : http://en.wikipedia.org/wiki/Method_chaining
자바 7에 추가될뻔한 기능이었다고 한다. ^^; 자바의 빈클래스에 막 길들어지기 시작한 내게는 조금 낯선 형태랄까?
setter 메소드에서 클래스(this)를 리턴해주는 형태니까...
Chaining.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | public class DateChaining { private String year; private String month; private String day; public String getMonth() { return month; } public DateChaining setMonth(String month) { this .month = month; return this ; } public String getDay() { return day; } public DateChaining setDay(String day) { this .day = day; return this ; } public String getYear() { return year; } public DateChaining setYear(String year) { this .year = year; return this ; } @Override public String toString() { return "DateChaining [year=" + year + ", month=" + month + ", day=" + day + "]" ; } } |
ChainingTest.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | package test; import main.DateChaining; import static org.junit.Assert.*; import static org.hamcrest.CoreMatchers.*; import org.junit.Test; public class ChainingTest { @Test public void 체이닝_테스트() { //given DateChaining chain = new DateChaining(); //when chain.setYear( "2011" ).setMonth( "07" ).setDay( "17" ); //then assertThat(chain.getYear(), is( "2011" )); assertThat(chain.getMonth(), is( "07" )); assertThat(chain.getDay(), is( "17" )); } @Test public void 순서흐트러진_체이닝_테스트() { //given DateChaining chain = new DateChaining(); //when chain.setMonth( "07" ).setDay( "17" ).setYear( "2011" ); //then assertThat(chain.getYear(), is( "2011" )); assertThat(chain.getMonth(), is( "07" )); assertThat(chain.getDay(), is( "17" )); } @Test public void 중복된_필드에대한_세트선언시() { //given DateChaining chain = new DateChaining(); //when // chain.setYear( "2011" ).setMonth( "07" ).setDay( "17" ).setYear( "2012" ); //then assertNotSame(chain.getYear(), is( "2011" )); assertThat(chain.getMonth(), is( "07" )); assertThat(chain.getDay(), is( "17" )); } } |
출처 - http://java.ihoney.pe.kr/175
'Development > Java' 카테고리의 다른 글
java - xml 읽고 쓰기 (1) | 2012.10.22 |
---|---|
java - java 7 새로운 기능 및 특징 (2) | 2012.10.20 |
java - Timer 및 TimerTask Class (0) | 2012.10.06 |
java - 가비지 컬렉션(Garbage Collection) (0) | 2012.10.05 |
jdom - xmlns, xsi 설정 (0) | 2012.10.04 |