반응형

Dart, 클래스에 기능 추가하기(mixin)

글. 수알치 오상문 

 

Mxin(믹스인)은 여러 클래스 계층 구조에서 클래스 코드를 재사용하는 방법입니다. Mixin을 사용하려면 with 키워드 다음에 하나 이상의 Mixin 이름을 사용하십시오. 다음 예제는 Mixiin을 사용하는 두 클래스를 보여줍니다.

 

class Musician extends Performer with Musical {

  // ···

}

 

class Maestro extends Person with Musical, Aggressive, Demented {

  Maestro(String maestroName) {

    name = maestroName; canConduct = true;

  }

}

 

Mixin을 구현하려면 Object를 확장하고 생성자를 선언하지 않는 클래스를 만듭니다. Mixin을 일반 클래스로 사용하려면 class 대신 mixin 키워드를 사용합니다.

 

mixin Musical {

  bool canPlayPiano = false;

  bool canCompose = false;

  bool canConduct = false;

  void entertainMe() {

    if (canPlayPiano) {

      print('Playing piano');

    } else if (canConduct) {

      print('Waving hands');

    } else {

      print('Humming to self');

    }

  }

}

 

때때로 Mixin을 사용할 수있는 유형을 제한하고 싶을 수 있습니다. 다음 예에서 볼 수 있듯이 on 키워드를 사용하여 필수 슈퍼 클래스를 지정하여 Mixin의 사용을 제한 할 수 있습니다.

 

class Musician { // ... } mixin MusicalPerformer on Musician {

  // ...

}

 

class SingerDancer extends Musician with MusicalPerformer {

  // ...

}

 

앞 예에서 Musician 클래스를 확장하거나 구현하는 클래스만 MusicalPerformer Mixin을 사용할 수 있습니다. SingerDancer는 Musician을 확장하기 때문에 SingerDancer는 MusicalPerformer에서 Mixin 할 수 있습니다.

 

<이상>

반응형

'Dart' 카테고리의 다른 글

Dart, 제너릭(Generic)  (0) 2021.06.17
Dart, 클래스 변수와 메서드  (0) 2021.06.17
Dart, 열거형 (Enumerated type)  (0) 2021.06.17
Dart, 클래스 class 확장  (0) 2021.06.17
Dart, 메서드(메소드)  (0) 2021.06.17

+ Recent posts