본문 바로가기

Study/오프젝트

04) 설계 품질과 트레이드오프

이번 장에서는 데이터 중심의 설계를 살펴보고 객체지향 설계와 비교하면서 좋은 설계, 나쁜 설계에 대해 또렷하게 배워보는 시간이였다.

 

이전 장에서 배웠던 내용을 떠올려보자. 객체지향 설계의 핵심역할, 책임, 협력이다. 

협력은 애플리케이션의 기능을 구현하기 위해 메시지를 주고받는 객체들 사이의  상호작용이다.

책임은 객체가 다른 객체와 협력하기 위해 수행하는 행동이고, 역할은 대체 가능한 책임의 집합이다.

책임은 객체지향 애플리케이션 전체의 품질을 결정한다.

객체지향 설계란 올바른 객체에게 올바른 책임을 할당하면서 낮은 결합도높은 응집도를 만드는 활동이다.

이를 합리적인 수준으로 유지할 수 있는 중요한 원칙은 객체의 상태가 아니라 객체의 행동에 초점을 맞추는 것이다.

 

응집도

  • 모듈에 포함된 배우 요소들이 연관돼 있는 정도
  • 변경이 발생할 때 모듈 내부에서 발생하는 변경의 정도로 측정한다.

결합도

  • 의존성의 정도
  • 한 모듈이 변경되기 위해서 다른 모듈의 변경을 요구하는 정도로 측정한다.

 

객체의 상태구현에 속한다. 구현은 불안정하기에 변하기 쉽다. 상태 변경은 인터페이스의 변경을 초래하며 인터페이스에 의존하는 모든 객체에게 변경의 영향이 퍼지게 된다.

그에 비해 객체의 책임인터페이스에 속한다. 객체는 책임을 드러내는 인터페이스 뒤로 책임을 수행하는데 필요한 상태를 캡슐화함으로써 구현 변경에 대한 파장이 외부로 퍼져나가는 것을 방지한다. 변경 가능성이 높은 부분을 객체 내부로 숨김으로써 추상화를 한다.

'Study > 오프젝트' 카테고리의 다른 글

06) 메시지와 인터페이스  (0) 2023.12.15
05) 책임 할당하기  (0) 2023.12.11
03) 역할, 책임, 협력  (2) 2023.12.03
02) 객체지향 프로그래밍  (0) 2023.11.29
01) 객체, 설계  (2) 2023.11.27