📖 독서13 [오브젝트] 5장. 책임 할당하기 책임 할당 - 데이터 중심 설계로 인해 발생하는 문제점을 해결할 수 있는 가장 기본적인 방법은 데이터가 아닌 책임에 초점을 맞추는 것이다. - 책임 할당 과정은 일종의 트레이드오프 활동이다. 동일한 문제를 해결할 수 있는 다양한 책임 할당 방법이 존재하며, 어떤 방법이 최선인지는 상황과 문맥에 따라 달라진다. - 데이터 중심 설계에서 책임 중심 설계로 전환할 때 따라야 하는 두 가지 원칙 데이터보다 행동을 먼저 결정하라. 협력이라는 문맥 안에서 책임을 결정하라. - 협력에 적합한 책임을 수확하기 위해서는 객체를 결정한 후에 메시지를 선택하는 것이 아니라 메시지를 결정한 후에 객체를 선택해야 한다. 메시지가 존재하기 때문에 그 메시지를 처리할 객체가 필요한 것이다. 객체가 메시지를 선택하는 것이 아니라 메.. 2022. 3. 6. [오브젝트] 4장. 설계 품질과 트레이드 오프 - 역할, 책임, 협력 중 책임이 가장 중요하다. 책임이 객체지향 애플리케이션의 품질을 결정한다. - 객체들이 수행할 책임이 적절하게 할당되지 못한 상황에서는 원활한 협력도 기대할 수 없을 것이다. 역할은 책임의 집합이기 때문에 책임이 적절하지 못하면 역할 역시 협력과 조화를 이루지 못한다. 객체지향 설계 - 응집도와 결합도 그리고 캡슐화 - 객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 행동 응집도 : 모듈에 포함된 내부 요소들이 연관돼 있는 정도. 모듈 내의 요소들이 하나의 목적을 위해 긴밀하게 협력한다면 그 모듈은 높은 응집도를 가진다. 더보기 객체지향의 관점에서 응집도는 객체 또는 클래스에 얼마나 관련 높은 책임들을 할당했는지를 나타낸다.. 2022. 3. 3. [오브젝트] 2장. 객체지향 프로그래밍 객체지향 프로그래밍을 향해 - 객체지향은 말 그대로 객체를 지향하는 것이다. 진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞출 때에만 얻을 수 있다. 이를 위해서는 프로그래밍하는 동안 다음의 두 가지에 집중해야 한다. 어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라. 클래스는 공통적인 상태와 행동을 공유하는 객체들을 추상화한 것이다. 따라서 클래스의 윤곽을 잡기 위해서는 어떤 객체들이 어떤 상태와 행동을 가지는지를 먼저 결정해야 한다. 객체를 중심에 두는 접근 방법은 설계를 단순하고 깔끔하게 만든다. 객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다. 이것은 설계를 유연하고 확장 가능하게 만든다. 객체들의 모양과 윤곽이 .. 2022. 3. 2. [오브젝트] 3장. 역할, 책임, 협력 객체 지향에서 가장 중요한 것은 역할, 책임, 협력이다. 협력 : 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용 - 어떤 객체가 다른 객체에게 무언가를 요청하는 것 - 객체의 행동을 결정 - 메시지 전송 -> 메서드 실행 책임 : 객체가 협력에 참여하기 위해 수행하는 로직 - 객체지향 설계는 협력에 필요한 메시지를 찾고 메시지에 적절한 객체를 선택하는 반복적인 과정을 통해 이뤄진다. 그리고 이런 메시지가 메시지를 수신할 객체의 책임을 결정한다. - 객체가 충분히 추상적이면서 미니멀리즘을 따르는 인터페이스를 가지게 하고 싶다면 메시지가 객체를 선택하게 하라. - 중요한 것은 객체의 상태가 아니다. 행동이다. 행동이 중요하다. 객체가 가질 수 있는 상태는 행동을 결정하고 나서야 비로소 결정할.. 2022. 2. 27. 이전 1 2 3 4 다음