在 Dart 中,有一個神奇的型別,叫做 mixin。
它和 class 比較類似,但它沒有建構函式。
通過 mixin,可以擴充套件一個類的屬性和功能,使得類具有 Mixin 類的屬性和函式 API。
如何定義一個 Mixin?
使用 mixin
關鍵字來定一個 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?
通過 with
關鍵來使用 Mixin 類擴充套件一個類。
在 Dart 中,一個類支援擴充套件無限個 Mixin,它們使用 ,
來分隔彼此。
class Maestro extends Person
with Musical, Aggressive, Demented {
Maestro(String maestroName) {
name = maestroName;
canConduct = true;
}
}複製程式碼