객체지향

프로그래밍/객체지향 설계

[오브젝트] 3장. 역할, 책임, 협력

객체지향 패러다임의 관점에서 핵심은 협력, 책임, 역할이다. 역할, 책입, 협력이 제자리를 찾지 못한 상태라면 응집도 높은 클래스와 중복 없는 상속 계층을 구현한다고 하더라도 우리가 만든 애플리케이션이 침몰하는 것을 구원하지 못할 것이다. 그 이유를 살펴보자. 1. 협력 영화 예매 시스템 돌아보기 객체지향 원칙을 따르는 애플리케이션의 제어 흐름은 어떤 하나의 객체에 의해 통제되지 않고 다양한 객체들 사이에 균형 있게 분배되는 것이 일반적이다. 여기서 중요한 것은 다양한 객체들이 영화 예매라는 기능을 구현하기 위해 메시지를 주고받으면서 상호작용한다는 점이다. 이처럼 객체들이 애플리케이션의 기능을 구현하기 위해 수행하는 상호작용을 협력이라고한다. 객체가 협력에 참여하기 위해 수행하는 로직은 책임이라고 한다...

프로그래밍/객체지향 설계

[오브젝트] 2장. 객체지향 프로그래밍

1. 영화 예매 시스템 요구사항 앞으로의 설명을 위해 '영화'와 '상영'이라는 용어를 구분할 필요가 있다. '영화'는 영화에 대한 기본 정보를 의미한다. 제목, 상영시간, 가격정보 등을 가지고 있다. '상영'은 실제로 관객들이 영화를 관람하는 사건을 표현한다. 상영일자, 시간, 순번 등을 말한다. 영화는 하루 중 다양한 시간대에 걸쳐 한 번 이상 상영될 수 있다. 두 용어의 차이가 중요한 이유는 사용자가 실제로 예매하는 대상은 영화가 아니라 상영이다! 사람들은 영화를 예매한다고 표현하지만 실제로는 특정 시간에 상영되는 영화를 관람할 수 있는 권리를 구매하기 위해 돈을 지불한다. 특정한 두가지 조건을 만족하는 예매자는 요금을 할인받을 수 있다. 할인 조건 (discount condition) 할인 정책 (..

프로그래밍/객체지향 설계

[오브젝트] 1장. 객체, 설계

객체지향 설계 관련 글들은 조영호 저자의 오브젝트 라는 책의 내용을 정리한 포스팅들이며, 챕터별로 포스팅할 예정입니다. 1장에서는 절자지향에 가까운 코드를 객체지향적으로 최대한 리팩토링하는 과정을 보여줌으로써 객체지향적 설계가 무엇인가에 대해 살펴 볼 것입니다. 1. 티켓 판매 애플리케이션 구현하기 여러분은 소극장의 홍보도 겸할 겸 관람객들의 발길이 이어지도록 작은 이벤트를 기획하기로 했다. 이벤트의 내용은 간단하데 추첨을 통해 선정된 관람객에게 공연을 무료로 관람할 수 있는 초대장을 발송하는 것이다. 드디어 기다리던 공연 날이 밝았다. 소극장 앞은 초대장 당첨자들과 표를 구매하려는 관람객으로 장사진을 이루고 있었다. 이제 소극장의 문을 열어 오랜 시간 공연을 기다려온 관람객들을 맞이하자. 코드 작성 거..

Giwonnnnnnn
'객체지향' 태그의 글 목록