티스토리 뷰
Aggregation(집약), Composition(합성,구성).
두 패턴 모두 집합에 관련된 패턴으로 차이점에 대해 여러 설명들이 있으나 직접적으로 와닿지 않은 것이 사실임.
나름 고민해 본 결과 원룸이나 오피스텔에 입주할때 가전제품이 필요한데 구매하는 주체가 누구이고 이사갈때 두고 가는지 가져가는가의 차이정도가 어떨까 생각해봄.
[Aggregation] 주인이 제공해주느냐 -->이사 갈때 두고 감, 생성 소멸이 내 관할이 아님. 다음 세입자에게 공유됨.
[Composition] 내가 구매하느냐 -->이사 갈때 가져가거나 내가 처분해야 함.
객체에 대해 생성(create)과 소멸(destory)에 대한 주체(책임자)는 누구인가?
/* Composition */
public class Officetels{
private Television tv;
private Washingmachine washingmachine;
public Officetels(){
this.tv = new Television(); //내가 구매한 티비
this.washingmachine = new Washingmachine(); //내가 구매한 세탁기
} //이사갈때 가져가거나 내가 처분해야 함.
}
/* Aggregation */
public class Officetels{
private Television tv;
private Washingmachine washingmachine;
public Officetels(Television tv, Washigmachine washingmachine){
this.tv = tv; //이미 있었던 티비
this.washingmachine = washingmachine; //이미 있었던 세탁기
} //이사갈때 가져가면 안됨. 다른 세입자가 써야 함.
}