Whiteship's Note

Fluent Interface

Hibernate/study : 2007.01.24 00:14


참조 : http://www.martinfowler.com/bliki/FluentInterface.html
번역 : http://younghoe.info/1

오늘 OpenSeed 스터디를 통해서 알게 된 단어이자 어떻게 해석해야 할지 막막한 '흐르는 듯한 인터페이스'라고 하면 어울리려나..

code를 보시면 감이 팍 올 것 같습니다.

before
private void makeNormal(Customer customer) {
Order o1 = new Order();
customer.addOrder(o1);
OrderLine line1 = new OrderLine(6, Product.find("TAL"));
o1.addLine(line1);
OrderLine line2 = new OrderLine(5, Product.find("HPK"));
o1.addLine(line2);
OrderLine line3 = new OrderLine(3, Product.find("LGV"));
o1.addLine(line3);
line2.setSkippable(true);
o1.setRush(true);
}
after
   private void makeFluent(Customer customer) {
customer.newOrder()
.with(6, "TAL")
.with(5, "HPK").skippable()
.with(3, "LGV")
.priorityRush();
}

멋지지 않나요? DSL(Domain Specific Language)과도 관계가 있고 Value Object 이야기가 나오는걸 보니 DDD(Domain Driven Design)와도 관계가 있는 글 같습니다.

가독성 좋고, 코드 길이가 짧아져서 좋은 것 같습니다. 본문에 단점이라고 꼽은 것으로는 메소드 그 자체만 보면 의아해 할 수도 있다는 내용이 있었습니다. setter에 리턴타입이 표기 되기 때문에 그럴 수 있지요. 따라서 "연속되는 행위"에 활용이 되면 좋겠다는 내용이 있습니다.

Anyway 멋지네요.

'Hibernate > study' 카테고리의 다른 글

DisplayTag 써보기  (2) 2007.01.30
Criteria에서 Join하기  (0) 2007.01.29
숙제 2  (0) 2007.01.26
HibernateTemplate  (0) 2007.01.26
HQL과 @Entity에 있는 name 속성의 관계  (0) 2007.01.24
Fluent Interface  (2) 2007.01.24
DbUnit  (2) 2007.01.23
Hibernate에서 쿼리 날리는 방법  (0) 2007.01.19
객체들의 상태 변화(in Hibernate)  (2) 2007.01.19
숙제  (0) 2007.01.19
Transaction  (2) 2007.01.02
top

  1. Favicon of http://px.tistory.com BlogIcon 민재 2007.01.24 00:59 PERM. MOD/DEL REPLY

    fluent는 주로 "유창한"으로 번역이 되는거 같던데...
    코드가 정말 유창하게 의사표시를 하네.. ㅋㅋ..

    유창한 인터페이스.. 이것도 그리 나쁘지 않은 번역이 될듯...

    Favicon of https://whiteship.tistory.com BlogIcon 기선 2007.01.24 01:07 신고 PERM MOD/DEL

    오호.. 유창한도 괜찮은데요? ㅎㅎ
    구어체 스러운 표현에 딱 어울리는 듯.

Write a comment.