더북(TheBook)

18.8 클래스 다이어그램

지금까지는 프로그램의 상태를 나타내는 스택 다이어그램과 객체의 속성과 값을 보여주는 객체 다이어그램을 봤다. 이들 다이어그램은 프로그램 실행 상태를 스냅샷으로 표현하는 것이며 프로그램이 실행되면서 다이어그램도 바뀌게 된다.

이들 다이어그램은 상당히 자세하기 때문에 어떤 경우에는 적합하지 않다. 클래스 다이어그램은 프로그램의 구조를 더 추상적으로 표현한 것이다. 개별 객체를 보여주는 대신 클래스와 객체 사이의 관계를 보여주는 것이 클래스 다이어그램이다.

클래스 사이에는 몇 가지 관계가 성립한다.

  • 클래스의 객체는 다른 클래스의 객체에 대한 참조를 담을 수 있다. 예를 들어 각 RectanglePoint에 대한 참조를 담을 수 있고, 각 Deck은 다양한 Card에 대한 참조를 담을 수 있다. 이를 RectanglePoint를 갖는다(a Rectangle has a Point)라고 하므로 갖는다(HAS-A) 관계라고 한다.
  • 한 클래스는 다른 클래스에서 상속된 것일 수 있다. 손은 덱의 한 종류다(a Hand is a Kind of a Deck)라고 말할 수 있으므로 이를 이다(IS-A) 관계라고 한다.
  • 한 클래스가 다른 클래스에 의존적일 수 있다. 예를 들어 한 클래스의 객체가 다른 클래스의 객체를 인자로 받거나 다른 클래스의 객체를 계산의 일부로 사용하는 것이다. 이러한 관계를 의존성(dependency)이라고 한다.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.