반응형
믹스인(Mixin) 이란?
Mixin은 Dart 언어의 기능으로, 클래스의 일부 코드를 다른 클래스에서 재사용할 수 있도록 하는 기능입니다. Mixin은 클래스의 인스턴스를 생성하지 않으며, 다른 클래스에서 Mixin을 사용할 때 기능을 추가할 수 있습니다. 이를 통해 코드 중복을 줄이고, 여러 클래스에 동일한 기능을 제공할 수 있습니다. 또한 다른 클래스에 기능을 추가할 때 중복 코드를 줄이고 모듈화된 구조를 만들 수 있습니다.
믹스인 사용 방법
1. 먼저 Mixin을 정의하기 위해서는 mixin 키워드를 사용합니다.
mixin WalkMixin {
void walk() {
print('걷기');
}
}
2. 다른 클래스에서 Mixin을 사용하려면, with 키워드를 사용하여 추가합니다.
class Human with WalkMixin {}
3. Mixin은 다른 Mixin이나 인터페이스를 구현할 수 있습니다.
mixin RunMixin on WalkMixin {
void run() {
print('달리기');
}
}
주의사항
- Mixin은 다른 클래스를 상속받지 못합니다. 즉, extends 키워드를 사용할 수 없습니다.
- Mixin에 선언된 메서드는 동일한 이름의 메서드가 있는 경우, 뒤에 추가된 Mixin이 우선 순위를 갖습니다. 이에 따라 Mixin 순서에 주의해야 합니다.
예제 코드
아래 예제에서는 SwimMixin과 FlyMixin 믹스인이 각각 수영하기와 날기 기능을 제공하며, Animal 클래스를 상속받은 Duck 클래스는 SwimMixin과 FlyMixin을 추가하여 해당 기능을 사용할 수 있게 됩니다.
또한 Penguin 클래스는 SwimMixin 을 추가하여 수영하기 기능을 사용할 수 있습니다.
mixin SwimMixin {
void swim() {
print('수영하기');
}
}
mixin FlyMixin {
void fly() {
print('날기');
}
}
class Animal {
void eat() {
print('먹기');
}
}
class Duck extends Animal with SwimMixin, FlyMixin {}
class Penguin extends Animal with SwimMixin {}
void main() {
Duck duck = Duck();
duck.eat(); // 먹기
duck.swim(); // 수영하기
duck.fly(); // 날기
Penguin penguin = Penguin();
penguin.eat(); // 먹기
penguin.swim(); // 수영하기
}
반응형
'Dev-기타 > Flutter' 카테고리의 다른 글
Future와 Stream (0) | 2024.09.09 |
---|---|
[이슈해결] fvm 설치 후 flutter - 안드로이드 빌드 실패 (0) | 2023.09.28 |
Flutter 버전 업데이트 시 pub-cache 에러 발생 시 (0) | 2023.07.04 |