ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Ch7. 함께 모으기
    코딩은 주댕이로/객체지향의 사실과 오해 2022. 4. 4. 20:34

    마틴 파울러는 객체지향 설계 안에 존재하는 세 가지 상호 연관된 관점에 대해 설명한다.

    개념 관점, 명세 관점, 구현 관점

    개념 관점: 사용자가 도메인을 바라보는 관점을 반영한다. 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심

    명세 관점: 프로그래머는 객체가 협력을 위해 ‘무엇'을 할 수 있는가에 초점을 맞춘다.

    구현 관점: 객체들이 책임을 수행하는 데 필요한 동작하는 코드를 작성하는 것. 책임을 ‘어떻게' 수행할 것인가에 초점

    개념 관점, 명세 관점, 구현 관점은 동일한 클래스를 세 가지 다른 방향에서 바라보는 것을 의미한다.

    클래스는 세 가지 관점을 모두 수용할 수 있도록 개념, 인터페이스, 구현을 함께 드러내야 한다. 동시에 코드 안에서 세 가지 관점을 쉽게 식별할 수 있도록 깔끔하게 분리해야 한다.

    코드와 세 가지 관점

    코드는 세 가지 관점을 모두 제공해야 한다.

    인터페이스를 수정하면 해당 객체와 협력하는 모든 객체에게 영향을 미칠 수밖에 없다. 객체의 인터페이스는 수정하기 어렵다는 사실을 명심하라.

    다른 사람이 여러분의 코드를 읽으면서 세 가지 관점을 쉽게 포착하지 못한다면 세 가지 관점이 명확하게 드러날 수 있게 코드를 개선하라.

    인터페이스와 구현을 분리하라

    마틴 파울러는 개념적인 관점과 명세 관점 사이는 그렇게 중요하지 않은 경우가 많지만 명세 관점과 구현 관점을 분리하는 것은 매우 중요하다고 주장한다.

    '코딩은 주댕이로 > 객체지향의 사실과 오해' 카테고리의 다른 글

    Ch7. 함께 모으기  (0) 2022.04.04
    Ch6. 객체 지도  (0) 2022.03.09
    Ch5. 책임과 메시지  (0) 2022.03.09
    Ch3. 타입과 추상화  (0) 2022.03.09
    Ch2. 이상한 나라의 객체  (0) 2022.03.09
    Ch1. 협력하는 객체들의 공동체  (0) 2022.03.09

    댓글 0

Designed by Tistory.