오브젝트 4~ 정리

sangeun·2020년 2월 24일
0

설계 품질과 트레이드오프

객체지향 설계 방법

  • 상태를 분할의 중심축으로 삼기
  • 책임을 분할의 중심축으로 삼기
    두가지 방법이 있다. 물론 후자가 더 적합한 방법이다. 객체의 데이터(상태)는 구현에 속한다. 구현을 중심으로 삼으면 인터페이스에 구현의 세부사항이 들어가고, 캡슐화의 원칙이 무너진다. 결과적으로 상태가 변경되면 인터페이스가 변경되고, 인터페이스에 의존하는 모든 객체들이 변경된다.

반대로 책임은 인터페이스에 속하므로, 안정적으로 캡슐화가 가능하고 구현의 파장이 외부로 벗어나지 않는다.

객체지향 평가 방법

객체지향적인 설계인지 평가하는 방법에는 세 가지가 존재한다.

  • 캡슐화
  • 응집도
  • 결합도

캡슐화

캡슐화는 품질의 가장 중요한 척도로서, 응집도와 결합도에도 영향을 끼친다.
객체의 상태와 행동을 객체 안에 모으는 것을 캡슐화라고 한다. 변경될 가능성이 높은 구현은 내부에 두고, 안정적인 인터페이스를 통해 외부와 통신하는 것을 말한다.

응집도, 결합도

응집도란 모듈에 포함된 내부 요소들이 연관되어있는 정도를 나타낸다.
구체적으로 말하면, 변경이 발생할 때 모듈 내부 전체가 함께 변경된다면 응집도가 높은 것이다.

결합도

결합도란 다른 모듈에 대해 얼마나 많은 지식을 가지고 있는지를 나타낸다.
한 모듈이 변경될 때 외부의 다른 모듈이 변경된다면 결합도가 높은 것이다.
내부를 변경했을 때 외부 모듈에 영향을 끼치는 것 또한 결합도가 높다고 할 수 있다. 반면, 내부를 변경할 때는 외부에 영향을 끼치지 않고, 퍼블릭 인터페이스를 바꿔야지만 다른 모듈에 영향을 끼치는 경우를 결합도가 높다고 한다.

profile
꾸준히

0개의 댓글