자바스크립트를 허용해주세요.
[ 자바스크립트 활성화 방법 ]
from Mohon Aktifkan Javascript!
 

[Dart] 14장 믹스인

728x90

✅ 1.Dart 믹스인 (Mixin)

Mixin(믹스인)은 상속과 비슷하지만 다중 상속을 흉내낼 수 있는 기능으로, 클래스에 기능(메소드, 속성)을 끼워 넣는 것입니다. with 키워드를 사용해 다른 클래스의 기능을 재사용합니다, 상속은 한 클래스만 가능하나, 믹스인은 여러 개를 동시에 적용할 수 있다는 장점을 가지고 있습니다.


✅ 2. 기본 문법

// 기본 문법
mixin Loader {
  void log(String msg) {
    print("Loading: $msg");
  }
}

class Program with Loader {
  String name;
  Program(this.name);

  void sayBooting() {
    log("Window's $name");
  }
}

void main() {
  var p = Program("kim");
  p.sayBooting(); // Loading Windows's kim
}
  • mix Loader -> 믹스인 정의
  • class Program with Loader ->  Program 클래스에 Loader 믹스인 적용 
  • log() 메소드를 Program이 바로 사용 가능

✅ 3. 믹스인 여러 개 사용하기

// 믹스인 여러 개 사용하기
mixin Button {
  void click() => print("버튼 누름");
}

mixin Booting {
  void loading() => print("로딩 중...");
}

class Desktop with Button, Booting {}

void main() {
  var u = Desktop();
  u.click(); // 버튼 누름
  u.loading(); // Loading...
}
  • with Button, Booting -> 두 개 믹스인을 한 번에 추가함
  • Desktop은 다중 상속이 불가하나, 믹스인을 통해 두 기능 모두 사용 가능

✅ 4. 믹스인 제약조건 (on 키워드)

class Video {
  void like() => print("좋아요");
}

mixin DisLike on Video {
  void dislike() => print("싫어요");
}

class YT extends Video with DisLike {}

void main() {
  var w = YT();
  w.dislike(); // 싫어요
  w.like(); // 좋아요
}
  • mixin DisLike on Video -> Video를 상속받은 클래스만 DisLike 믹스인 사용 가능

💡 요약

  • mixin: 코드 재사용을 위한 특별한 클래스 형태
  • with 키워드로 적용하고 다중 상속처럼 여러 개 믹스인을 동시 사용 가능
  • on 키워드로 적용 대상 제한 가능

 

 

GitHub - Koras02/dart-bloging

Contribute to Koras02/dart-bloging development by creating an account on GitHub.

github.com

 

728x90
LIST

'Mobile > Dart' 카테고리의 다른 글

[Dart] 13장 추상 클래스와 인터페이스  (0) 2025.08.30
[Dart] 12장 상속  (1) 2025.08.17
[Dart] 11장 생성자와 초기화 리스트  (3) 2025.08.11
[Dart] 10장 클래스와 객체  (2) 2025.08.09
[Dart] 9장 화살표 함수  (0) 2025.08.05