개발/개발관련

[개발관련] UML 관계 자꾸 헷갈리는 연관관계, 집합관계, 포함관계, 의존관계

mabb 2023. 4. 13. 15:28
반응형

자꾸 UML 관계들이 헷갈려서 본인의 이해 수준으로 정리.

객체는 서로의 기능을 사용하며 관계를 갖는다.
다른 객체의 기능을 사용하려면 ???

객체 내부에서 기능을 사용할 객체를 다룰 수 있어야 한다.
그러기 위해 다음과 같은 행동을 할 수 있다.

////////////////

필드  : 필드에 다른 객체를 간직하고 사용하기 = 오랜 관계   
ㄴ.생성자에서 필드를 초기화 하는 두가지 방법
     ①다른 객체를 생성자에서 직접 생성 = 라이프 싸이클이 같다.
     ②외부에서 주입 받기 = 라이프 싸이클이 다르다.

메소드 : 메소드 내부에서 다른 객체를 직접 생성하거나, 외부에서 파라미터로 주입 받기 = 메소드가 끝나면 버릴 관계

////////////////

생성자에서 다른 객체를 직접 생성하여 필드로 간직하거나
생성자에서 다른 객체를 주입 받아 필드로 간직하거나

메소드에서 다른 객체를 직접 생성하여 사용하고 버리거나
메소드에서 다른 객체를 주입 받아 사용하고 버릴 수 있다.

필드로 간직하는 건 기능을 사용하고도 연관 관계가 남아있다. -Association
메소드에서 쓰고 버리는 건 잠깐 의존하고 마는 것이다. -Dependency

필드로 간직하는 건 연관 관계
메소드에서 쓰고 버리는건 의존 관계

필드로 간직하는데 간직하는 객체를 생성자에서 직접 생성하여
라이프싸이클이 같아진다면? Composition, 
라이프싸이클이 같아 더 진한 관계이기에 마름모가 진하게 검은색이다.

필드로 간직하는데 간직하는 객체를 생성자에서 주입받아
라이프싸이클이 다르다면? Aggregation

 

 

 

 

반응형