객체 지향이란, 협력하는 객체들의 공동체를 만드는 것이다.

 

요청과 응답, 역할과 책임

예를 들어, 어떤 카페를 상상해 보자.

- 커피 주문이라는 협력은 손님이 캐시어에게 원하는 커피를 요청하면서 시작된다.

- 주문을 받은 캐시어는 주문 내역이 기록된 컵을 전달함으로서 바리스타에게 요청한다.

- 바리스타는 커피를 제조한 후 제조가 완료 되었음을 캐시어에게 알려주는것으로 응답 한다.

- 캐시어는 진동벨로 손님의 주문에 응답한다.

 

손님 ------커피 주문----> 캐시어 -----커피 제조 요청---> 바리스타

손님 <----커피 완성------ 캐시어 <----커피 완성---------- 바리스타

 

사람들은 다른 사람과 협력하는 과정 속에서 '역할'을 맡고 역할에 적합한 책임을 수행한다는 사실은 중요한 개념을 제시한다.

- 여러사람이 동일한 역할 수행 가능

- 역할은 대체 가능성을 의미

- 책임을 수행하는 방법은 자율적으로 선택

- 한 사람이 동시에 여러 역할을 수행 가능

객체지향 설계라는 것은 적절한 객체에게 적절한 책임을 할당하는 것에서 시작된다.

 

메서드와 자율성

객체가 수신된 메시지를 처리하는 방법을 메서드(method)라고 부른다.

메서드는 클래스 안에 포한된 함수 또는 프로시저를 통해 구현된다.

메시지를 수신한 객체가 실행 시간에 메서드를 선택할 수 있다는 점은 핵심적인 특징 중 하나이다.

이 개념에 비유하면, 커피 제조요청이 메시지이고, 커피를 제조하는 구체적 방법이 메서드이다.

훌륭한 객체지향 설계를 위한 첫 걸음은 메시지를 주고받는 객체의 관점으로 사고의 중심을 전환하는 것이다.

 

ㅇㅇㅇㅇ

 

 

 

 

 

 

 

 

블로그 이미지

hjc_

୧( “̮ )୨

,