책임(2)
-
[오브젝트 : 코드로 이해하는 객체지향 설계] 3. 역할, 책임, 협력
객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정 1. 협력(collaboration) 협력이란 객체들이 기능 구현을 하기 위해 요청과 응답을 통해 상호작용 하는 것을 협력이라고 합니다. 여기서 상영은 영화에 메세지를 전송하여 예매자의 요금 계산을 요청을 합니다. 왜냐하면 영화가 요금 계산을 하기 위해 필요한 기본 요금과 할인 정책을 가장 잘 알고 있기 때문입니다. 상영이 요금계산을 위해 영화의 내부구현에 직접 접근을 하면 캡슐화의 원칙을 위반하게 되고 또한 영화의 내부 구현을 바꾸면 상영도 영향을 받게 되기 때문에 → 자신이 할 수 없는 일을 다른 객체에게 위임하면 협력에 참여하는 객체들의 자율성을 향상 시킬 수 있습니다. ※협력이 설계를 위한 문맥을 결정한다..
2021.08.24 -
[오브젝트 : 코드로 이해하는 객체지향 설계] 1. 객체, 설계
※ 본 게시글은 오브젝트라는 책을 읽고 정리한 글입니다. ※ 소프트웨어 모듈의 세 가지 목적 실행 중에 제대로 동작해야 한다. 변경에 용이해야 한다. ⇒ 요구사항이 항상 변경되기 때문 코드를 읽는 사람과 의사소통이 되어야 한다. 이 책에서는 세 가지 목적을 달성한 훌륭한 객체지향 설계를 할 수 있도록 코드를 변경하며, 어떤것이 좋은 코드인지 설명합니다. 객체지향의 목적 캡슐화, 책임이동, 데이터와 프로세스의 통합으로 결합도를 낮추고 응집도를 높이는 것 의존성과 결합도 결합도 : 모듈과 모듈간의 의존도. 객체 사이의 의존성이 높은 경우 결합도가 높다고 한다. 의존성이 높은 객체 : 객체가 변경될 때 그 객체에 의존하는 다른 객체도 함께 변경될 수 있다. 결합도를 낮추는 방법 1. 캡슐화 캡슐화 : 객체 내..
2021.08.11