본문 바로가기

개발서적4

[오브젝트 - 코드로 이해하는 객체지향 설계] 4장. 설계 품질과 트레이드오프 (예제에 관한 내용은 빼고 내용 정리)객체지향 설계의 핵심은 역할, 책임, 협력이다.협력 - 애플리케이션의 기능을 구현하기 위해 메시지를 주고받는 객체들 사이의 상호작용책임 - 객체가 다른 객체와 협력하기 위해 수행하는 행동역할 - 대체 가능한 책임의 집합객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도와 높은 응집도를 가진 구조를 창조하는 활동이다.객체지향 설계의 핵심이 책임책임을 할당하는 작업이 응집도와 결합도 같은 설계 품질과 연관됨1. 데이터 중심의 영화 예매 시스템객체지향 설계에서는 두 가지 방법을 이용해 시스템을 객체로 분할할 수 있다.상태를 분할의 축으로 삼는 방법책임을 분할의 축으로 삼는 방법시스템을 분할하기 위해서는 책임에 초점을 맞춰야한다. 객체의 상태는 구현에 속한.. 2025. 5. 13.
[오브젝트 - 코드로 이해하는 객체지향 설계] 3장. 역할, 책임, 협력 객체지향 패러다임의 관점에서 핵심은 역할, 책임, 협력이다.객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다. 클래스와 상속은 객체들의 책임과 협력이 어느 정도 자리를 잡은 후에 사용할 수 있는 구현 메커니즘일 뿐이다.협력영화 예매 시스템 돌아보기객체지향 원칙을 따르는 애플리케이션의 제어 흐름은 어떤 하나의 객체에 의해 통제되지 않고 다양한 객체들 사이에 균형 있게 분배되는 것이 일반적이다.객체들은 요청의 흐름을 따라 자신에게 분배된 로직을 실행하면서 애플리케이션의 전체 기능을 완성한다.다양한 객체들이 영화 예매라는 기능을 구현하기 위해 메시지를 주고받으면서 상호작용한다는 점인데,객체들이 애플리케이션 기능을 구현하기 위해 수행하는 상호작용을 협력이라.. 2025. 4. 7.
[오브젝트 - 코드로 이해하는 객체지향 설계] 2장. 객체지향 프로그래밍 객체지향 프로그래밍을 향해협력, 객체, 클래스진정한 객체지향 패러다임으로의 전환은 클래스가 아닌 객체에 초점을 맞출 때에 얻을 수 있다.어떤 클래스가 필요한지를 고민하기 전에 어떤 객체들이 필요한지 고민하라.클래스는 공통적인 상태와 행동을 공유하는 객체들을 추상화한 것클래스의 윤곽을 잡기 위해서는 어떤 객체들이 어떤 상태와 행동을 가지는지를 먼저 결정해야함.객체를 독립적인 존재가 아니라 기능을 구현하기 위해 협력하는 공동체의 일원으로 봐야 한다.객체를 협력하는 공동체의 일원으로 바라보는 것은 설계를 유연하고 확장 가능하게 만든다.도메인의 구조를 따르는 프로그램 구조도메인: 문제를 해결하기 위해 사용자가 프로그램을 사용하는 분야public class Screening { private Movie mo.. 2025. 3. 21.
[오브젝트 - 코드로 이해하는 객체지향 설계] 1장. 객체, 설계 소프트웨어 모듈이 가져야 하는 세 가지 기능(모듈: 크기와 상관 없이 클래스나 패키지, 라이브러리와 같이 프로그램을 구성하는 임의의 요소)첫 번째 목적: 실행 중에 제대로 동작하는 것모듈의 존재 이유두 번째 목적: 변경을 위해 존재하는 것대부분의 모듈은 생명주기 동안 변경되기 때문에 간단한 작업만으로도 변경이 가능해야 함.세 번째 목적: 코드를 읽는 사람과 의사소통 하는 것특별한 훈련 없이도 개발자가 쉽게 읽고 이해할 수 있어야 함.즉, 모든 모듈은 제대로 실행돼야 하고, 변경이 용이해야 하며, 이해하기 쉬워야 한다.변경에 취약한 코드의존성(dependency)의존성이 변경과 관련돼 있다.의존성은 변경에 대한 영향을 암시한다.어떤 객체가 변경될 때 그 객체에게 의존하는 다른 객체도 함께 변경될 수 있다는.. 2025. 3. 18.