[Effective C++] "has-a" 혹은 "is-implemented in terms of"(~는 ~를 써서 구현됨)를 모형화할 때는 객체 합성을 사용하자


항목 38 : "has-a" 혹은 "is-implemented in terms of"(~는 ~를 써서 구현됨)를 모형화할 때는 객체 합성을 사용하자

  • 소프트웨어 개발에서 영역(domain)은 가지로 나뉜다. 사람, 이동수단 실제 사물을 따서 만든 객체를 응용 영역(application domain), 버퍼, 뮤텍스, 탐색 트리 순수하게 시스템 구현만을 위한 인공물들을 구현 영역(implementation domain)에 속해있다고 부른다. 여기서 객체 합성이 응용 영역의 객체들 사이에서 일어나면 has-a 관계이다. 반면 구현 영역에서 일어나면 객체 합성의 의미는 (is-implemented-in-terms-of) 관계를 나타낸다.
  • 써서 구현되는 관계(is implemented in terms of) 형태의 설계 -> 특정 파생클래스와 기반클래스가 is-a 관계가 아니지만, 파생클래스는 기반 클래스의 기능을 활용해서 구현된


댓글

이 블로그의 인기 게시물

Unity - Dialogue 시스템을 구현할 때 유용한 무료 에셋

Unity - 메타 파일

Unity - 라이브러리 폴더