2010년 2월 28일 일요일

Method Chaining

메소드가 자신(this)을 리턴하여 메소드에 메소드를 연결하며 호출할 수 있게하는 기법의 정확한 이름은 Method Chaining이다(http://martinfowler.com/dslwip/MethodChaining.html). 이전 포스트에서 DML-style operations라고 표현해도 되나 의문을 가졌었는데 잘못된 것이다. Java 7에서는 이 기법이 아주 이디엄이 돼버렸는데 Chained Invocation으로 불린다.

 

소트웍스 앤솔러지를 보면 이와 비슷한 방법으로 마틴 파울러가 ruby 위에서 DSL을 구축해 나가는 과정의 글이 나온다. method chaining을 사용하여 문제영역을 표현하는 방법을 보이는데 언어위에서 DSL을 구축하는 방법으로 쓰이는 것이다(물론 ruby라는 동적 언어의 장점을 사용하여 DSL을 구축하는 방법이 추가되어 있다). 병특 시절 실용주의 프로그래머를 보면서 DSL에 매력을 느꼈었다. 그런데 좋긴 좋은데 언어 위에 다른 언어를 만들어 낸다는 내용을 읽으며 뭔소린가 하던 기억이 난다. 그리고 대신 Lex & yacc 펼쳤다는 ㅎ.

 

묵혀둔 질문 몇 개가 한 번에 해결됐다.

댓글 없음:

댓글 쓰기