-
OOP 객체지향처럼 생각해보기 2책/객체지향의 사실과 오해 2020. 12. 21. 20:43
인터페이스 정리하기
- 전 글에서 우리가 얻어낸 것은 객체들의 인터페이스입니다.
- 객체가 수신한 메시지가 객체의 인터페이스를 결정한다는 사실을 기억해야 합니다.
- 메시지가 객체를 선택했고, 선택된 객체는 메시지를 자신의 인터페이스로 받아들입니다.
- 각 객체를 협력이라는 문맥에서 떼어내어 수신 가능한 메시지만 추려내면 객체의 인터페이스가 됩니다.
- 객체가 어떤 메시지를 수신할 수 있다는 것은 그 객체의 인터페이스 안에 메시지에 해당하는 오퍼레이션이 존재한다는 것을 의미합니다.
각 객체별로 설명하면 다음과 같습니다.
- 손님 객체의 인터페이스 안에는 ‘제품을 주문하라’ 라는 오퍼레이션이
- 메뉴판 객체의 인터페이스 안에는 ‘메뉴 항목을 찾아라’ 라는 오퍼레이션이
- 바리스타 객체의 인터페이스 안에는 ‘커피를 제조하라’ 라는 오퍼레이션이
- 커피 객체는 ‘생성하라’ 라는 오퍼레이션을
- 실제로 소프트웨어의 구현은 객체들을 포괄하는 타입을 정의한 후 식별된 오퍼레이션을 타입의 인터페이스에 추가해야 합니다.
- 객체의 타입을 구현하는 일반적인 방법은 클래스를 이용하는 것입니다.
- 협력을 통해 식별된 타입의 오퍼레이션은 외부에서 접근 가능한 공용 인터페이스의 일부라는 사실을 기억해야 합니다.
- 인터페이스에 포함된 오퍼레이션 역시 외부에서 접근 가능하도록 공용(public)으로 선언돼 있어야 합니다.
1234567891011121314151617public class Customer {public void order(String menuName) {}}class MenuItem {}class Menu {public MenuItem choose(String name) {}}class Barista {public Coffe makeCoffe (MenuItem menuItem) {}}class Coffee {public Coffee (MenuItem menuItem) {}}cs 참조
'책 > 객체지향의 사실과 오해' 카테고리의 다른 글
OOP 객체지향처럼 생각해보기 (0) 2020.12.21