1. 개요객체지향에서 객체는 협력 안에서 다른 객체로부터 요청이 전송됐을 때만 자신에게 주어진 책임을 수행합니다.객체 간의 협력은 메시지를 통해 이루어집니다.2. 책임정의객체가 협력에 참여하기 위해 수행해야 하는 행위를 나타냅니다.상위 수준에서 개략적으로 서술되며, 구현 방법에 대한 고민은 나중에 고려됩니다.3. 메시지정의객체가 다른 객체에게 주어진 책임을 수행하도록 요청을 보내는 것을 말합니다.구성송신자와 수신자로 구성되며, 이들 간의 상호 협력을 강조합니다.특징하나의 책임이 여러 메시지로 분할될 수 있으며협력에 참여하기 위한 유일한 방법입니다.4. 협력중요성객체지향 설계에서 협력은 어떤 객체가 어떤 책임을 수행하고 어떤 객체로부터 메시지를 수신할 것인지 결정하는 것에서 시작됩니다.절차초반에는 객체들이..
1. 개요"왕," "토끼," "모자 장수," "요리사," "앨리스" 등의 등장인물들이 참여하는 재판 과정을 살펴볼 수 있습니다. 이 과정은 3가지 증인이 등장하며 각각의 재판은 유사한 협력 구조를 가집니다.모자 장수는 증언을 마치고 나서 쏜살같이 법정을 빠져나갔다. "다음 증인을 불러라" 왕이 하얀 토끼에게 명령했다. 다음 증인은 공작부인의 요리사였다. "증언하라." 왕이 말했다. "싫어요." 왕이 근심스러운 얼굴로 하얀 토끼를 쳐다보자 토끼가 나지막이 속삭였다. "반드시 심문해야 할 목격자입니다." "글쎄, 반드시 그래야만 한다면 해야겠지." 그때 뒤에서 산쥐가 요리사의 증언을 방해하자 얼마 동안 법정 안이 술렁거렸다. 결국 산쥐가 법정 밖으 로 끌려나가고 법정이 다시 진정됐을 때는 요리사는 사라지고 ..
1. 개요객체지향 프로그래밍에서 역할, 책임, 협력은 핵심 요소입니다. 유사한 협력을 하나의 추상화된 협력으로 만들기 위해 역할이 사용됩니다. 2. 협력 추상화를 위한 역할 사용2.1 협력의 유사성세 가지 협력이 주어지고, 그 과정이 유사하므로 하나의 협력으로 다루고 싶은 경우, 역할이 사용될 수 있습니다.2.2 역할의 정의역할은 협력 과정 속에서 특정 객체가 수행하는 책임의 집합을 나타냅니다. 예를 들어, '판사'와 '증인'의 역할을 통해 세 가지 협력을 하나로 추상화할 수 있습니다.3. 역할 대체의 조건3.1 메시지 이해객체가 다른 역할을 대체하려면, 해당 역할이 수신할 수 있는 메시지를 동일한 방식으로 이해해야 합니다.3.2 동일한 책임 수행동일한 역할을 수행할 수 있는 객체들은 협력 내에서 동일한..