ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [오브젝트] 역할, 책임, 협력
    Books 2022. 8. 18. 22:17

    "오브젝트: 코드로 이해하는 객체지향 설계" 책의 기록입니다.


    협력

    • 협력이란, 어떤 객체가 다른 객체에게 무엇인가를 요청하는 것
    • 메시지 전송: 객체 사이의 협력을 위해 사용할 수 있는 유일한 커뮤니케이션 수단
    • 메시지를 수신한 객체는 메서드를 실행해 요청에 응답
      • 객체가 메시지를 처리할 방법을 스스로 선택! → 자신의 일을 스스로 처리하는 자율적인 존재
    • 객체를 자율적으로 만드는 기본적인 방법은 내부 구현을 캡슐화하는 것

    협력이 설계를 위한 문맥을 결정

    • 객체의 행동을 결정하는 것은 객체가 참여하고 있는 협력
    • 객체의 상태를 결정하는 것은 행동
    • 결론적으로, 협력이 객체를 구성하는 행동과 상태를 모두 결정 → 객체 설계에 필요한 문맥을 제공

    책임

    • 협력에 참여하기 위해 객체가 수행하는 행동
    • 무엇을 알고 있는가(knowing)무엇을 할 수 있는가(doing)으로 세분화
    • 객체지향 설계에서 가장 중요한 것은 책임

    책임 할당

    • 책임을 수행하는 데 필요한 정보를 가장 잘 알고 있는 전문가에게 책임을 할당하기 : Information Expert Pattern

    책임 주도 설계

    • Responsibility-Driven Design, RDD
    • 시스템 책임을 파악 → 더 작은 책임으로 분할 → 적절한 객체, 역할을 찾아 책임을 할당
    • 책임을 수행하는 도중 다른 객체의 도움이 필요할 경우 마찬가지로 찾아 할당 → 두 객체가 협력하게 됨
    • 책임을 할당할 때 고려해야 하는 두 가지 요소
      • 메시지가 객체를 결정한다.
      • 행동이 상태를 결정한다.

    역할

    • 객체가 어떤 특정한 협력 안에서 수행하는 책임의 집합
    • 유연하고 재사용 가능한 협력을 얻을 수 있기 때문에 중요
    • 역할은 다른 것으로 교체할 수 있는 책임의 집합
    • 역할을 구현하는 가장 일반적인 방법은 추상화 클래스인터페이스
    • 연극 안에서 배역을 연기하는 배우 ↔︎ 협력 안에서 역할을 수행하는 객체

    'Books' 카테고리의 다른 글

    [오브젝트] 객체지향 프로그래밍  (0) 2022.05.09

    댓글

Copyright@squareyun | Design@black7375