[Object] 일괄성 있는 협력

업데이트:

객체는 협력을 위해 존재한다. 협력은 객체가 존재하는 이유와 문맥을 제공한다. 잘 설계된 어플리케이션은 이해하기 쉽고, 수정이 용이하며, 재사용 가능한 협력의 모임이다. 객체지향 설계의 목표는 적절한 책임을 수행하는 객체들의 렵력을 기반으로 결합도가 낮고 재사용 가능한 코드 구조를 창조하는 것이다.

일괄성 있는 설계가 가져다 주는 큰 이익은 코드가 이해하기 쉬워진다는 것이다. 특정한 문제를 유사한 방법으로 해결하고 있다는 사실을 알면 문제를 이해하는 것만으로도 코드이 구조를 예상할 수 있게 된다.

가능하면 유사한 기능을 구현하기 위해 유사한 협력 패턴을 사용하라. 객체들의 협력이 전체적으로 일관성 있는 유사한 패턴을 따른다면 시스템을 이해하고 확장하기 위해 요구되는 정신적은 부담을 크게 줄일 수 있다.

설계에 일관성 부여하기

협력을 일괄성 있게 만들기 위해 다음과 같은 기본 지침을 따르는 것이 도움이 된다.

  • 변하는 개념을 변하지 않는 개념으로 부터 분리하라.
  • 변하는 개념을 캡슐화하라.

바뀌는 부분을 따로 뽑아서 캡슐화한다. 그렇게 하면 나중에 바뀌지 않는 부분에는 영향을 미치지 않은 채로 그 부분만 고치거나 확장할 수 있다.

지속적으로 개선하라 처음에는 일관성을 유지하는 것처럼 보이던 협력 패턴이 시간이 흐르면서 요구사항이 추가되는 과정에서 일관성의 벽에 조금씩 금이 가는 경우를 자주보게 된다. 협력을 설계하는 초기 단계에서 모든 요구 사항을 미리 예상할수 없기 때문에 이것은 자연스러운 과정이다. 협력은 고정된 것이 아니다. 만약 현재 협력 패턴이 변경의 무게를 지탱하기 어렵다면 변경을 수용할 수 있는 협력 패턴을 향해 과감하게 리팩터링하라.

Reference

오브젝트, 코드로 이해하는 객체지향 설계

카테고리:

업데이트:

댓글남기기