Contents
1. 믹스인1. 믹스인
오리를 생각해보자. 오리는 동물이지만, “날기”, “수영” 등 여러 능력이 있다.
작동 규칙은 같은 이름의 기능이 겹치면 맨 마지막에 붙인 능력이 이긴다. 예: with A, B 이면 B가 우선
class Animal { void breathe() => print('숨 쉬기'); }
mixin CanFly { void fly() => print('훨훨'); }
mixin CanSwim { void swim() => print('첨벙첨벙'); }
class Duck extends Animal with CanFly, CanSwim {}
mixin class Engine {
int power = 5000;
}
mixin class Wheel {
int size = 21;
}
// has
class Car with Engine, Wheel {}
void main() {
Car c1 = Car();
print(c1.power);
print(c1.size);
}
즉, 도메인(정체성)은 상속으로, 공통 기능(능력)은 믹스인으로 코드를 작성한다.
Share article