객체 지향 프로그래밍 언어에서 믹스인(mixin 또는 mix-in)은 다른 클래스의 부모클래스가 되지 않으면서 다른 클래스에서 사용할 수 있는 메서드를 포함하는 클래스이다. 다른 클래스가 믹스인의 메소드에 액세스하는 방법은 언어에 따라 다르다. 믹스인은 때때로 "상속"이 아니라 "포함"으로 설명된다.
믹스인은 코드재사용성을 높이고 다중상속으로 인해 발생할 수 있는 상속의 모호성 문제("다이아몬드 문제")를 제거하거나 언어에서 다중상속에 대한 지원부족을 해결하기 위해 사용될 수 있다. 믹스인은 구현된 메서드가 포함된 인터페이스로 볼 수도 있다. 이 패턴은 종속성 역전 원칙을 적용하는 예가 되기도 한다.
믹스인은 프로그래머가 특정 코드를 다른 클래스에 삽입 할 수 있도록 하는 프로그래밍 개념이다. 믹스인 프로그래밍은 특정 클래스에 작성된 기능들을 다른 클래스와 혼합하는 소프트웨어 개발 유형이다.
믹스인 클래스는 필요로 하는 기능들을 포함하는 상위 클래스로서 역할을 한다. 그리고 하위 클래스는 이 기능을 상속하거나 단순히 재사용 할 수 있습니다. 하지만 자식클래스를 특수화(Specialization)하는 수단으로는 사용할 수 없다. 일반적으로 믹스인은 엄격한 단일 "is-a"관계(상속관계)를 만들지 않고 원하는 기능을 하위 클래스로 전달한다. 여기에 믹스인과 상속의 중요한 차이점이 있다. 자식클래스는 여전히 부모클래스의 모든 기능을 상속 할 수 있지만, 부모와 자식이라는 의미는 반드시 부여될 필요는 없다.
참고