Book/객체지향의 사실과 오해

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 05장 책임과 메시지

자율적인 책임 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. '증언하라'라는 책임은 자율성을 충분히 보장할 수 있을 정도로 포괄적으로 추상적이다. 하지만 '목격했던 장면을 떠올려라', '떠오르는 기억을 시간 순서대로 재구성하라', '말로 간결하게 표현하라'라는 상세한 수준의 책임들은 자율성을 제한한다. 메시지와 메서드 메시지를 전송할 때 추가적인 정보가 필요한 경우 메시지의 인자(argument)를 통해 추가 정보를 제공할 수 있다. 메시지가 곧 메서드이고 메시지의 인자가 매개변수이다. 예를 들어 왕이 모자 장수에게 어제, 왕국에서 목격한 것을 증언할 것을 요청하고 싶다면 다음과 같은 메시지를 전송할 것이다. 모자장수.증언하라(어제, 왕국) 다형성 : 서로 다른 유형의 객체가 동일한 메시..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 04장 역할, 책임, 협력

협력 협력은 한 사람이 다른 사람에게 도움을 요청할 때 시작된다. 요청을 받은 사람은 일을 처리한 후 요청한 사람에게 필요한 지식이나 서비스를 제공하는 것으로 요청에 응답한다. 결과적으로 협력은 다수의 요청과 응답으로 구성되며 전체적으로 협력은 다수의 연쇄적인 요청과 응답의 흐름으로 구성된다. 이상한 나라의 앨리스 재판 속 협력 어떤 등장인물들이 특정한 요청을 받아들일 수 있는 이유는 그 요청에 대해 적절한 방식으로 응답하는데 필요한 지식과 행동 방식을 가지고 있기 때문이다. 그리고 요청과 응답은 협력에 참여하는 객체가 수행할 책임을 결정한다. 책임 객체지향의 세계에서는 어떤 객체가 어떤 요청에 대해 대답해 줄 수 있거나, 적절한 행동을 할 의무가 있는 경우 해당 객체가 책임을 가진다고 말한다. 책임과 ..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 03장 타입과 추상화

이전까지 객체지향을 공부하면서 중요하다는 것은 알고 있었지만 추상화가 무엇인지 정확하게 이해를 못 하고 있었다. 그런데 객체지향 사실과 오해에 너무 좋은 예시가 나와있었다. 전 세계 어디를 가더라도 지하철 노선도는 유사한 형태를 띠기 때문에 한 도시의 지하철 노선도를 이해하면 다른 도시의 지하철 노선도 역시 쉽게 이해할 수 있다. 초기의 지하철 노선도는 실제와 유사한 물리적인 지형 위에 구불구불한 운행 노선과 불규칙적인 역 간의 거리를 사실적으로 묘사하고 있었다. 문제는 이렇게 사실적인 정보가 오히려 지하철을 이용하는 승객들로 하여금 노선도를 이해하기 어렵게 만들었다는 점이다. 지하철 노선도 디자인에서 가장 중요한 것은 사실적으로 지형을 묘사했느냐가 아니라 역과 역 사이의 연결성을 얼마나 직관적으로 표현..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 02장 이상한 나라의 객체

앨리스의 상태를 결정하는 것은 행동이지만 행동의 결과를 결정하는 것은 상태다. 앨리스의 키를 결정하는 것 케이크 먹기와 부채질하기가 있다. 따라서 앨리스가 한 행동의 결과는 앨리스의 상태에 의존적이다. 앨리스는 상태를 가지며 상태는 변경 가능하다. 앨리스의 상태를 변경시키는 것은 앨리스의 행동이다. 앨리스는 어떤 상태에 있더라도 유일하게 식별 가능하다. 상태 어떤 행동의 결과는 과거에 어떤 행동들이 일어났었느냐에 의존 지난 많은 행동들을 토대로 결과를 판단하는 것은 너무 어렵기 때문에 결과를 쉽게 예측할 수 있는 상태라는 개념을 고안 프로퍼티와 프로퍼티 값 프로퍼티 : 객체의 상태를 구성하는 모든 특징이며, 변경되지 않고 고정되기 때문에 정적이다. 프로퍼티 값 : 시간이 흐름에 따라 변경되기 때문에 동적..

Book/객체지향의 사실과 오해

[객체지향의 사실과 오해] 01장 협력하는 객체들의 공동체

대다수의 개발자들은 객체지향 애플리케이션이 실세계를 모방해야 한다는 설명을 전혀 납득하지 못한다. 협력하는 사람들 (feat. 커피 공화국) 커피를 주문하는 손님, 주문을 받는 캐시어, 커피를 제조하는 바리스타라는 역할 손님, 캐시어, 바리스타는 주문한 커피를 손님에게 제공하기 위해 협력하는 과정에서 자신이 맡은 바 책임 커피 주문이라는 협력에 참여 요청과 응답으로 구성된 협력 1. 사람들은 스스로 해결하지 못하는 문제와 마주치면 문제 해결에 필요한 지식을 제공해 줄 수 있는 사람에게 도움을 요청한다. 2. 요청을 받은 사람은 다른 사람의 요청에 응답한다. 역할과 책임 특정한 역할은 곧 특정한 책임이며 몇 가지 개념을 제시한다. 이는 객체의 역할의 개념과 같다. 여러 사람이 동일한 역할을 수행할 수 있다..