[오브젝트] 14일차

da__ell·2023년 8월 15일
0

독서 - 오브젝트

목록 보기
14/25
post-thumbnail

p. 172 - p. 185

객체를 자율적으로 만들자

처음부터 책임 주도 설계 방법을 따르는 것 보다 동작하는 코드를 작성한 후에 리팩토링 하는 방법도 있다.


6. 메시지와 인터페이스

훌륭한 퍼블릭 인터페이스를 얻기 위해서는 책임 주도 설계 방법을 따르는 것 만으로는 부족하다.

6-1. 협력과 메시지

클라이언트 - 서버 모델

협력 안에서 메시지를 전송하는 객체를 클라이언트, 메시지를 수신하는 객체를 서버라고 부른다.
협력은 클라이언트가 서버의 서비스를 요청하는 단방향 상호작용이다.

객체는 협력에 참여하는 동안 클라리언트와 서버의 역할을 동시에 수행하는 것이 일반적이다.

메시지와 메시지 전송

메세지는 오퍼레이션 명과 인자로 구성되며 메시지 전송은 여기에 메시지 수신자를 추가한 것이다.

메시지와 메서드

메시지를 수신했을 때 실제로 실행되는 함수 또는 프로시저를 메서드라고 부른다.
기술적 관점에서 객체 사이의 메시지 전송은 전통적인 방식의 함수 호출이다 프로시저 호출과는 다르다.

퍼블릭 인터페이스와 오퍼레이션

외부의 객체는 오직 객체가 공개하는 메시지를 통해서만 객체와 상호작용할 수 있다. 이때 외부에 공개하는 메시지의 집합을 퍼블릭 인터페이스라고 부른다.

프로그래밍 언어 관점에서 퍼블릭 인터페이스에 포함된 메시지를 오퍼레이션이라고 부른다. 오퍼레이션은 구현이 아닌 추상화다.

객체가 다른 객체에게 메시지를 전송하면 런타임 시스템음 메시지 전송을 오퍼레이션 호출로 해석하고 메시지를 수신한 객체의 실제 타입을 기반으로 적절한 메서드를 찾아 실행한다.

시그니처

오퍼레이션(or 메서드)의 이름과 파라미터 목록을 합쳐 시그니처(signature)라고 부른다. 오퍼레이션은 실행코드 없이 시그니처만을 정의한 것이고 메서드는 이 시그니처에 구현을 더한 것이다.

6-2. 인터페이스와 설계 품질

좋은 인터페이스는 최소한의 인터페이스와 추상적인 인터페이스라는 조건을 만족해야 한다.

퍼블릭 인터페이스의 품질에 영향을 미치는 다음과 같은 원칙과 기법이 있다.

디미터 법칙

객체의 내부 구조에 대한 결합으로 인해 발생하는 설계 문제를 해결하기 위해 제안된 원칙이 바로 디미터 법칙이다.

디미터 법칙은 간단하게 요약하면 객체의 내부 구조에 강하게 결합되지 않도록 협력 경로를 제한하는 것이다.
디미터 법칙을 따르기 위해서는 클래스가 특정한 조건을 만족하는 대상에게만 메시지를 전송하도록 프로그래밍 해야한다.

profile
daelkdev@gmail.com

0개의 댓글