티스토리 뷰

반응형

4장. 역할, 책임, 협력 

책임

- 객체지향에서 가장 중요한 능력은 책임을 능숙하게 객체에 할당하는 것.

- 책임의 분류 : 하는것(doing), 아는것(knowing)

- 책임은 하는것과 아는것을 외부에 제공해 줄 수 있는 서비스의 목록이다. 따라서 책임은 공용 인터페이스(public interface)를 구성한다.

 

책임과 메세지

- 메세지는 협력을 위해 한 객체가 다른 객체로 접근할 수 있는 유일한 방법이다.

 

객체지향 설계는 협력에 참여하기 위해 어떤 객체가 어떤 책임을 수행해야하고 어떤 객체로부터 메시지를 수신할 것인지를 결정하는 것으로부터 시작된다. 어떤 클래스가 필요하고 어떤 메서드를 포함해야 하는지를 결정하는 것은 책임과 메시지에 대한 대략적인 윤곽을 잡은 후에 시작해도 늦지 않다. (구현에 대한 방법은 나중이다..)

 

협력을 따라 흐르는 객체의 책임

- 협력을 설계한다는 것은 설계에 참여하는 객체들이 주고받을 요청과 응답의 흐름을 결정한다는 것을 의미한다.

 

객체지향 설계 기법

- 책임주도설계(Responsibility-Driven Design)

 : 협력에 필요한 책임들을 식별하고 적합한 객체에게 책임을 할당하는 방식. 이는 어떤 방식으로 사고하고 무엇을 기반으로 의사결정을 내리는지 보여준다.

 

- 디자인패턴(Design Pattern)

 : 전문가들이 반복적으로 사용하는 해결 방법을 정의해 놓은 설계 템플릿

 

- 테스트주도개발(Test Driven Development)

 : 테스트를 먼저 작성하고 테스트를 통과하는 구체적인 코드를 추가하면서 애플리케이션을 완성해가는 방식. 구체적인 코드를 작성해나가면서 역할, 책임, 협력을 식별하고 식별된 역할, 책임, 협력이 적합한지를 피드백받는 것.

 : 테스트주도개발은 책임주도 설계를 통해 도닥해야하는 목적지를 테스트라는 안전장치를 통해 좀 더 빠르고 견고한 방법으로 도달할 수 있도록 해주는 최상의 설계 프랙티스다.

: 간접 입력값을 위해 stub 나 mock 을 사용한다. 

 

 

반응형

'객체지향' 카테고리의 다른 글

객체지향의 사실과 오해 (1장~3장)  (0) 2024.09.17