[오브젝트] 부록 C 동적인 협력, 정적인 코드

좋은 설계는 객체 사이의 협력과 행동을 표현하는 동적 모델을 기반으로 해야한다.

  1. 동적 모델
    프로그램 실행 구조를 표현하는 움직이는 모델

  2. 정적 모델
    코드의 구조를 담는 고정된 모델

01 동적 모델과 정적 모델

행동이 코드를 결정한다

객체가 외부에 제공하는 행동이 중요하다. 동적 모델이 정적 모델을 결정해야한다.

02 도메인 모델과 구현

도메인 모델에 관하여
  1. 도메인
    사용자가 프로그램을 사용하는 대상 영역

  2. 모델
    지식을 선택적으로 단순화하고 의식적으로 구조화한 형태

  3. 도메인 모델
    사용자가 프로그램을 사용하는 대상 영역에 대한 지식을 선택적으로 단순화하고 의식적으로 구조화한 형태

소프트웨어의 도메인에 대해 고민하고 도메인 모델을 기반으로 소프트웨어를 구축해야한다. 그러면, 개념과 소프트웨어 사이의 표현적 차이를 줄일 수 있기 때문에 이해하고 수정하기 쉬온 소프트웨어를 만들 수 있다.

중요한 것은, 도메인 모델을 작성하는 것이 목표가 아니라 출발점이다. 중요한 것은 객체들의 협력을 지원하는 코드 구조를 만드는 것이다. 코드의 구조를 주도하는 것은 행동이다.

행동과 변경을 고려한 도메인 모델

도메인 모델은 단순히 클래스 다이어그램이 아니다. 도메인의 핵심을 간략하게 단순화해서 표현할 수 있는 모든 것이다. 이렇게 작성된 개념이 코드에 대한 구조와 행동을 드러내면 훌륭한 도메인 모델이다.


오브젝트 <조영호>

Comments