프로그래밍/Java

코딩 바보의 클래스 다이어그램 이해해보기

seungdols 2015. 11. 20. 17:51
클래스 다이어그램
관계

클래스 관계 종류

  • Generalization : 상속
  • Realization : 구현
  • Dependency : 다른 객체 사용
  • Association : 다른 객체의 참조를 필드로 가짐
  • Aggregation : ‘Has-a’관계를 말한다.
  • Composition : 생명주기가 같은 ‘has-a’관계
Generalization

부모클래스와 자식클래스간의 상속관계를 나타낸다. 서브클래스가 주체가 되어 서브 클래스를 슈퍼 클래스로 Generalization 하는 것을 말하고, 반대의 경우 슈퍼 클래스를 서브 클래스로 Specialize 하는 것을 말한다.

클래스 간의 ‘Is - a’ 관계이어야 한다.
Generalization img

Realization

interface의 명세만 있는 메서드를 오버라이딩하여 실구현으로 만드는 관계를 말한다.
Realization img

Dependency

‘Using’관계로 말 할 수 있고, 다른 요소를 사용하는 관계를 말하고, 가장 많이 사용하는 관계입니다.
Dependency img

Association

한 클래스가 컬렉션으로 포함되는 것을 나타내고, 집합은 다이아몬드 모양의 끝이 포함하는 클래스를 향하도록 나타낸다.

다시 말하면, 보통 다른 객체의 참조를 가지는 필드를 말한다.

방향이 있는 직접연관과 방향이 없는 연관의 구분은 참조하는 쪽과 당하는 쪽의 구분을 하게 돕는다. 방향성이 없는 연관은 한 쪽이 참조 할수도 있거나, 다른 한쪽이 참조 할 수도 있거나 혹은 둘다 참조 할 수 있을 경우(나도 모르고 며느리도 모를때)사용 한다.

자세한 내용 Nextree의 본문

Association img

Aggregation

객체가 특정 클래스의 일부로 속하는 연관을 집합연관이라고 한다.
Aggregation img

Composition

집합연관 보다 강한 연관의 의미로 객체가 부모(Whole)의 일부일뿐만 아니라 부모 없이는 존재 할 수 없는 것을 의미한다.
Composition imge
아래 차니님 블로그의 이미지를 보고 이해하시면 될 것 같다.

영화는 영화관과 집합연관의 관계를 가진다. 0개 일수도 혹은 그 이상 (* 표시) 이 되는 연관을 가진다.

그런데 영화관과 박스오피스의 관계는 1:1이고, 합성관계이다. 박스 오피스는 영화관에 무조건 속한다는 뜻이다. 영화관이 사라지면, 박스 오피스도 사라진다.

(왜? 그럴까? 사실 면밀히 생각하면, 영화관-박스오피스 관계도 합성관계는 아니라고 생각 된다. )쉽게 생각해보자. 사실 UML이 쉬운 분야는 아닌 것 같다.
Chanlee 블로그-합성연관


출처
Nextree 블로그
차니님
퀘스천님


  •  무단 수정 및 배포는 금지합니다. 
  •  모든 내용은 본 블로그 운영자가 정리한 내용입니다. 
  •  참조한 정보에 대해서는 출처를 남기고 있습니다.
  •  다양한 곳에서 참조한 경우 출처 누락이 있을 수 있습니다.
  •  (말해주시면  수정하도록 하겠습니다.)
  •  틀린 내용 / 오류가 포함된 내용은 댓글로 남겨주세요.
  •  choiseungho0822@gmail.com 보내주셔도 됩니다.
  •  Seungdols Wiki 운영중입니다.



반응형