728x90
반응형
소프트웨어 특히 OOP(Object-Oriented Programming)를 다룰 때 클래스간의 관계를 나타내기 위해 Class Diagram을 그리곤 한다. 이 때 헷갈리는 부분이 Compotition(구성) 과 Aggregation(집합)의 차이이다. 둘 다 전체와 부분이라는 점에서 동일하지만 생명 주기로 보면 차이가 있기 때문에 화살표의 모양도 다르게 그린다. 잘 정리된 블로그가 있어 블로그 링크(맨아래)와 함께 요약해 보았다.
Composition은 전체와 부분이 강력한 연관 관계를 맺으며, 전체와 부분이 같은 생명 주기를 갖는다.
( 'Car' 와 'Engine' 의 관계 )
( 'House' 와 'Room' 의 관계 )
public class Engine
{
......
}
public class Car
{
Engine e = new Engine();
.......
}
Aggregation은 전체와 부분의 연관 관계를 맺지만, 그러나 동일한 생명 주기를 갖지는 않는다.
( 'Person' 과 'Address' 의 관계 )
( '역사과목' 과 '학생' 의 관계 )
public class Address
{
......
}
public class Person
{
private Address address;
public Person(Address address)
{
this.address = address;
}
......
}
728x90
반응형
'IT노트 > 기타' 카테고리의 다른 글
[Open DART] 주린이 개발자의 재무제표 데이터 긁어오기 (0) | 2021.02.18 |
---|---|
[안드로이드] MainActivity 관찰하기 (0) | 2020.09.14 |
Kotlin 배우기 (0) | 2020.09.08 |
티스토리 파헤치기 - 2탄 (0) | 2018.08.11 |
티스토리 스킨 파헤치기 - 1탄 (3) | 2018.08.08 |