Dart - Mixins

MJ·2023년 5월 30일
0

Mixins

  • 여러 클래스 계층에서 재사용할 수 있는 코드는 정의하는 방법이다
  • 다중 상속을 위함
  • Mixin을 사용하려면 with 키워드를 사용한다 (다중 상속 가능)
class Musician extends Performer with Musical {
  // ···
}

class Maestro extends Person with Musical, Aggressive, Demented {
  Maestro(String maestroName) {
    name = maestroName;
    canConduct = true;
  }
}
  • Mixin을 정의하려면 mixin을 사용하다
  • mixin과 클래스를 모드 정의해야하는 경우에는 mixin class를 정의해야한다
mixin Musical {
  bool canPlayPiano = false;

  void entertainMe() {
    if (canPlayPiano) {
      print('Playing piano');
    } else {
      print('Humming to self');
    }
  }
}
  • on 키워드를 사용해 슈퍼 클래스를 지정할 수 있다
class Musician {
  // ...
}
mixin MusicalPerformer on Musician {
  // ...
}
class SingerDancer extends Musician with MusicalPerformer {
  // ...
}

위 코드에서 SingerDancer 클래스가 Musician을 확장한 클래스이기 때문데 MusicalPerformer을 사용할 수 있음

profile
느긋하게 살자!

0개의 댓글