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 |