ABOUT ME

-

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

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

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

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

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

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

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

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

    코드와 세 가지 관점

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

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

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

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

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

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

    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
Designed by Tistory.