시스템 구조를 시각적으로 정의하고 클래스 간의 관계를 파악하기 위해 UML 클래스 다이어그램(Class Diagram)을 활용한다.
클래스의 내부 명세와 객체지향적 관계를 도식화하는 방법을 정리했다.
클래스 간의 유기적 연결
게시판 시스템을 예로 클래스 간의 관계를 시각화했다.
+----------------+ (연관) +----------------+
| User | 1 -------------- * | Post |
+----------------+ +----------------+
| - id: String | | - title: String|
| + login() | | + edit() |
+----------------+ +----------------+
| ^
| | (상속)
+----------------+
| Admin |
+----------------+
| + deletePost() |
+----------------+
관계의 종류와 정의
-
연관(Association): User와 Post 간의 논리적 연결이다.
1:*표기는 한 명의 사용자가 여러 게시글을 작성할 수 있음을 의미한다. -
상속(Generalization): Admin이 User를 계승하는 관계이다.
관리자는 일반 사용자의 특성을 유지하며 추가 권한을 보유한다. -
접근 제어자:
-는private,+는public을 의미한다.
이는 설계 단계에서 캡슐화를 구현하는 지표가 된다.
설계의 역할
클래스 다이어그램 작성은 아이디어를 시스템 구조로 조립하는 과정이다.
구현 전 설계도를 검토하는 습관은 중요하다.
잘 설계된 다이어그램은 복잡한 개발 과정에서 지침 역할을 수행하는 것 같다.