[Java] 6. 포함(Composite, HAS-A)


포함관계(Composite, HAS-A)에 대한 포스팅이다.

1. 포함(Composite, HAS-A)

  • 클래스의 멤버로 참조변수를 선언


1-1. 예제코드

Composite 와 단어가 비슷하게 생긴 Compose 로 예를 들면,

컴포즈카페의 키오스크 메뉴판을 보면 여러 메뉴와 음료 등 구조를 보면
ComposeCafeMenu Caffeine, NonCaffeine 클래스는 포함되어 있다.고 볼 수 있다.

이와 같이 작은 단위의 클래스들을 조합해서 클래스를 만든다.


//컴포즈카페 메뉴
class ComposeCafeMenu {

    Caffeine caffeine = new Caffeine();

    NonCaffeine nonCaffeine = new NonCaffeine();

    //금액
    int amount;
    //사이즈
    int size;
}
//카페인 메뉴 클래스
class Caffeine {
    //음료이름
    String name;
    //커피유형(에스프레소, 아메리카노, 카푸치노...)
    int category;
    //커피 객체...
}

//None-카페인 메뉴 클래스
class NonCaffeine {
    //음료이름
    String name;
    //논커피(스무디, 에이드, 티...)
    int category;
    //기타 음료 객체...
}


1-2. 상속과 포함관계

  • 상속관계 : ‘~은 ~이다.’
  • 포함관계 : ‘~은 ~을 가지고 있다.’