[class] Mixin

Angela Jeong·2023년 11월 29일

Dart 기초

목록 보기
5/7
post-thumbnail

다중상속(Mixin)이란?

믹스인은 클래스는 아니다.
일종의 기능을 주입하여 코드를 재사용하고 확장하는 방법 중 하나다.
'혼합(mix)'하는 방식으로 동작한다.
즉!! 믹스인 덕분에 여러개 부모를 가질 수 있게 되는거다.
ㅎㅎ.. 일단 예시를 보자


예시)

Animal이란 클래스와, Animal 클래스를 상속받은 Bird라는 클래스를 만들었다.

class Animal {
  String name;
  Animal(this.name);
}

class Bird extends Animal {
  Bird(String name): super(name);
}

void main () {
  Bird('Bird');
}

그런데 Animal에 현재 없는 함수 기능을 Bird에서 쓰게 하고 싶다면, 이때 믹스인을 쓰면된다.

mixin Flyable on Animal {
  void fly() {
    print('I am flying!');
  }
}

class Animal {
  String name;
  Animal(this.name);
}

class Bird extends Animal **with Flyable**{
  Bird(String name): super(name);
}
// with Flyable을 넣어 Flyable이라는 믹싱에서 제공하는 fly() 메소드를 사용할 수 있게 함.

void main () {
 var bird = Bird('Bird');
 bird.fly();
}

이렇게 하면 bird는 fly()라는 메소드를 쓸 수 있게 된다.

즉, Animal을 상속받은 Brid는 fly라는 기능이 없는데, flyable을 다중 상속 받는 것처럼 fly메소드도 가져올 수 있게 되는 것이다.


믹싱을 실제로 현업에서 많이 사용할까? 그것이 궁금하다. 현업에선 어떨 때 많이 쓰는지 아는 분 알려줘요~

0개의 댓글