[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. 상속과 포함관계
- 상속관계 : ‘~은 ~이다.’
- 포함관계 : ‘~은 ~을 가지고 있다.’