객체지향의 사실과 오해(4)
-
[객사오] 4. 역할, 책임, 협력
협력 요청과 응답으로 연결되는 네트워크 한 사람이 다른 사람에게 도움을 요청할 때 시작 요청을 받은 사람은 일을 처리한 후 요청한 사람에게 필요한 지식이나 서비스를 제공하는 것으로 응답 다수의 요청과 응답으로 구성됨 전체적으로 다수의 연쇄적인 요청과 응답의 흐름으로 구성됨 책임 어떤 객체가 어떤 요청에 대해 대답해줄 수 있거나 적절한 행동을 할 의무 객체지향 설계의 품질을 결정하는 가장 중요한 요소 적절한 객체에게 적절한 책임을 할당해야 함 분류 하는 것 (doing) 객체를 생성하거나 계산을 하는 등의 스스로 하는 것 다른 객체의 행동을 시작시키는 것 다른 객체의 활동을 제어하고 조절하는 것 아는 것 (knowing) 개인적인 정보에 관해 아는 것 관련된 객체에 관해 아는 것 자신이 유도하거나 계산할 ..
2023.07.26 -
[객사오] 3. 타입과 추상화
추상화를 통한 복잡성 극복 추상화 어떤 양상, 세부 사항, 구조를 좀 더 명확하게 이해하기 위해 특정 절차나 물체를 의도적으로 생략하거나 감춤으로써 복잡도를 극복하는 방법이다. 복잡성을 다루기 위해 추상화는 두 차원에서 이루어진다. 첫 번째 차원은 구체적인 사물들 간의 공통점은 취하고 차이점을 버리는 일반화를 통해 단순하게 만드는 것이다. 두 번째 차원은 중요한 부분을 강조하기 위해 불필요한 세부 사항을 제거함으로써 단순하게 만드는 것이다. 💡 모든 경우에 추상화의 목적은 복잡성을 이해하기 쉬운 수준으로 단순화하는 것이라는 점을 기억하자. 객체지향과 추상화 개념 (concept) 공통점을 기반으로 객체들을 묶기 위한 그릇이다. 일반적으로 우리가 인식하고 있는 다양한 사물이나 객체에 적용할 수 있는 아이디..
2023.07.26 -
[객사오] 2. 이상한 나라의 객체
객체, 그리고 소프트웨어 나라 상태 특정 시점에 객체가 가지고 있는 정보의 집합으로 객체의 구조적 특징을 표현한다. 객체의 상태는 객체에 존재하는 정적인 프로퍼티와 동적인 프로로퍼티 값으로 구성된다. 객체의 프로퍼티는 속성과 다른 객체를 참조하는 링크로 구분할 수 있다. 프로퍼티 (property) 객체의 상태를 구성하는 모든 특징을 의미한다. 앨리스의 경우 키, 위치, 음료가 해당된다. 프로퍼티 값 (property value) 객체의 상태를 구성하는 특징 중 특정한 값을 의미한다. 앨리스의 경우 키는 음료를 마시면 줄어들고, 문을 통과하면 위치가 변경되며, 음료를 다 마시면 음료를 버린다. 링크 (link) 객체와 객체 사이의 의미 있는 연결을 의미한다. 한 객체가 다른 객체의 식별자를 알고 있는 것..
2023.07.25 -
[객사오] 1. 협력하는 객체들의 공동체
요청과 응답으로 구성된 협력 객체지향에서는 역할을 수행할 수 있는 객체에게 요청(request)한다. 요청을 받은 객체는 요청한 객체에게 주어진 책임을 다하여 결과를 응답(response)한다. 요청과 응답을 통해 객체들은 협력(collaboration)한다. 역할과 책임 역할 (role) 어떤 협력에 참여하는 특정한 사람이 협력 안에서 차지하는 책임이나 임무를 의미한다. 역할은 책임이라는 개념을 내포하고 있다. 여러 객체가 동일한 역할을 수행할 수 있다. 해당 역할을 수행할 수 있다면 어떤 객체라도 상관없다. 한 사람이 동시에 여러 역할을 수행할 수 있다. 책임 (responsibility) 책임을 수행하는 방법은 자율적으로 선택할 수 있다. 💡 특정한 역할은 특정한 책임을 암시한다. 협력에 참여하며 ..
2023.07.25