의존 관계
- 공급자의 변경이 클라이언트에게도 영향을 주는 관계
- 클라이언트 -> 공급자
- 결합도의 또 다른 형태
- 이미 의존관계가 표시되는 경우 사용x
- 모든 것이 다 중요한 것은 아님
인터페이스
- 다중 상속의 문제점으로 인터페이스가 등장하게 됨
- 인터페이스는 계약을 정의함
- 형식적으로 추상 클래스(속성이 없음)와 동일함
- 속성과 메서드가 없고 오로지 추상적 오퍼레이션만
<<interface>>
사용해서 표현
- 인터페이스와 관련될 수 있는 의무
u
-
인터페이스를 사용한다.
-
인터페이스를 제공한다.
사용자 입장에서는 SiteSearch로 알고 있음 (다형성 제공)
- SearchController가 SiteSearch를 상속받은 것
Aggregation and composition
- Aggregation
- 느슨한 전체와 부분 관계
- 연관과 별 차이 없음
- 가능하면 사용하지 말 것!
- Composition
- 강한 전체와 부분 관계
- 특정 시간에 부분은 전체에 포함
- 부분은 항상 하나의 전체에 포함
- 전체는 부분의 생성과 삭제를 책임짐
- 즉 전체가 없어지면 부분도 자동으로 삭제되어야 함
제약 사항
제약에 맞춰야 함
설계자가 개발자에게 챙겨달라고 부탁하는 것
연관 클래스
Singleton 클래스
템플릿 클래스와 인터페이스
액티브 클래스
- 자신의 쓰레드를 실행하고 제어
Interaction Diagram and Class Diagram
- Interaction diagram을 그리고 나서 Class diagram을 그림