욱 연구소

슬기로운 개발생활

반응형

프로그래밍/객체지향 3

Chapter 03 역할, 책임, 협력

객체지향 패러다임의 관점에서 핵심은 역할(role), 책임(responsibility) 협력(collaboration)이다. (2장에서 다루었던 클래스, 상속, 지연 바인딩은 구현측면에서 중요하지만 본질과는 거리가 있다.) 객체지향의 본질은 협력하는 객체들의 공동체를 창조하는 것이다. 객체지향 설계의 핵심은 협력을 구성하기 위해 적절한 객체를 찾고 적절한 책임을 할당하는 과정에서 드러난다. 01 협력 영화 예매 시스템 돌아보기 영화 예매라는 기능을 완성하기 위해 협력하는 객체들의 상호작용을 표현한 그림 객체지향 원칙을 따르는 애플리케이션의 제어 흐름은 다향한 객체들 사이에 균형 있게 분배되는 것이다. 다양한 객체들이 영화 예매라는 기능을 구현하기 위해 메시지를 주고받으면서 상호 작용한다. 협력 - 객체들..

오브젝트:코드로 이해하는 객체지향 설계 Ch.02

01 (온라인) 영화 예매 시스템 요구사항 영화: 영화에 대한 기본 정보를 표현 (제목, 상영시간, 가격 정보) 상영: 실제로 관객들이 영화를 관람하는 사건 (상영 일자, 시간, 순번 등) 두 용어의 차이의 중요성 사용자가 실제로 예매하는 대상은 영화가 아니라 상영 사람들은 영화를 예매한다고 표현하지만 실제로 특정 시간에 상영되는 영화를 관람할 수 있는 권리를 구매하기 위해 돈을 지불하는 것 특정한 조건을 만족하는 예매자는 요금을 할인받을 수 있음 할인액을 결정하는 두 가지 규칙 할인 조건(discount condition): 가격의 할인 여부를 결정하며 ‘순서 조건’과 ‘기간조건’ 두 종류로 나눌 수 있다. 순서 조건(sequence condition): 상영 순번을 이용해 할인 여부를 결정하는 규칙 ..

오브젝트:코드로 이해하는 객체지향 설계 Ch.01

Chapter 01 객체, 설계 소프트웨어 유지보수에 대해 중요도가 낮음 소프트웨어 모듈이 가져야 하는 세가지 기능(로버트 마틴) 실행 중에 제대로 동작하는 것 변경을 위해 존재하는 것 코드를 읽는 사람과 의사소통하는 것 변경에 취약한 코드 의존성(dependency): 어떤 객체가 변경될 때, 그 객체에 의존하는 객체도 변경될 수 있음 결합도(coupling)가 높은 코드 결합도가 높다: 의존성이 강하다 결합도가 낮다: 합리적인 수준으로 의존한다 객체지향 설계의 목표: 객체 사이의 결합도를 낮춰 변경이 용이한 설계는 만드는 것 변경에 유연한 코드 자율성을 높이자 캡슐화(encapsulation) 개념적이나 물리적으로 객체 내부의 세부적인 사항을 감추는 것을 캡슐화 내부로의 접근을 제한하면 -> 객체와 ..

반응형