JAVA이야기

Coding Style : DSL(Domain Specific Language)

НooпeУ 2012. 1. 11. 01:12
만약 코딩을 할 때 속성을 지정해야 한다면?
우리는 어떻게 하는가?

Car2 car = new CarImpl();
MarketingDescription desc = new MarketingDescriptionImpl();
desc.setType("Box");
desc.setSubType("Insulated");
desc.setAttribute("length", "50.5");
desc.setAttribute("ladder", "yes");
desc.setAttribute("lining type", "cork");
car.setDescription(desc);

이런식으로 코딩을 한다.

하지만 DSL스타일의 코딩으로 한다면 다른 개발자들이 볼때 직관적으로 무엇을 하는지 알 수 있다.

Car car = Car.describedAs()
             .box()
             .length(50.5)
             .type(Type.INSULATED)
             .includes(Equipment.LADDER)
             .lining(Lining.CORK);
 
 
직관적으로 알 수 있지않은가?

출처:  http://www.ibm.com/developerworks/kr/library/j-eaed14/index.html