[Chap 07] 함께 모으기
[Chap 07] 함께 모으기
커피 전문점 도메인
세상에서 가장 작은 카페에서는 아메리카노, 카페 라떼, 카라멜 마키아또, 에스프레소 4 종류의 음료를 판다. 카페에는 파란색 원탁 테이블이 있고 그 위에는 메뉴판이 올려져 있다. 손님이 들어와서 원탁 테이블에 앉아 메뉴를 보고 바리스타에게 주문을 한다.
여기서 확인할 수 있는 객체들: 손님 객체, 아메리카노 객체, 카페 라떼 객체, 카라멜 마키아또 객체, 에스프레소 객체, 메뉴판 객체, 바리스타 객체
객체 추상화 ver: 손님 객체, 커피 객체들, 메뉴판 객체, 바리스타 객체
도메인 모델 만들기
메뉴판 <- 메뉴 항목
|
손님
|
바리스타 - 커피
설계하고 구현하기
협력을 설계할 때는 객체가 메시지를 선택하는 것이 아니라 메시지가 객체를 선택하게 해야 한다. 이 말은 메시지를 먼저 선택하고 그 후에 메시지를 수신하기에 적절한 객체를 선택해야 한다는 것을 말한다.
커피를 주문하는 설계에서 첫 번째 메시지는 커피를 주문하는 것이다.
커피를 주문하는 것은 어떤 객체의 역할일까? -> 손님
손님이 커피를 주문하기 위해서는 메뉴판을 봐야된다. -> 메뉴판
메뉴판 안에 있는 항복 객체들 중 선택한 메뉴판 객체가 손님 객체에게 메뉴 항목 전달
손님은 메뉴 항목을 바리스타에게 전달
바리스타는 자체적으로 해당 메뉴의 커피를 제작
손님에게 전달
각 객체드레게 주어진 메시지가 있고 응답해야되는 것들이 있었다. 이를 기반으로 구현을 한다.
메시지 응답을 위해서 수행해야되는 것은 메서드를 통해서 구현을 하고, 해당 객체에게 필요한 상태(가격, 칼로리, 잔액 등) 등은 속성을 통해서 구현을 한다.
정리
이번 장에서는 카페 도메인을 통해서 도메인 모델을 활용한 책임-주도 설계를 예시를 통해서 배울 수 있게 되었다.
그리고 도메인 모델이 설계를 할 때의 역할도 알게 되었다.
댓글남기기