믹스인이란?
- 객체지향언어에서 다른 클래스에서 '사용'할 목적으로 만들어진 클래스이다.
- '포함'으로 설명된다.
- '상속'과 주로 비교되는 개념이다. (is-a vs has-a)
- Composition 혹은 Aggregation 이라고 불리기도 한다.
- 코드 재사용성을 높여주고, 상속의 단점을 해결할 수도 있다.
- 자바코드에서는 다중 상속의 제한이 없는 인터페이스로 구현하기 용이하다.
- 대상 타입의 주된 기능에 선택적 기능을 '혼합(mixed in)'한다고 해서 믹스인이라 불린다.
예제 코드
public interface Singer {
AudioClip sing(Song s);
}
public interface Songwriter {
Song compose(int chartPosition);
}
public interface SingerSongwriter extends Singer, Songwriter {
AudioClip strum();
void actSensitive();
}
자바에서 Mixin의 예
Comparable 인터페이스는 믹스인 인터페이스로 볼 수 있다.