Flutter Dart特殊的 Mixins 写法

11 min read
abstract class Engine{
  void work();
}
 
class OilEngine implements Engine{
  @override
  void work() {
    print("OliEngine working....");
  }
 
}
 
class ElectricEngine implements Engine{
  @override
  void work() {
    print("ElectricEngine working....");
  }
}
 
class Tyre{
  String name = "";
  void run(){}
}
 
// class Car extends Tyre with ElectricEngine{}  简化写法如下
class Car = Tyre with ElectricEngine;
class Bus = Tyre with OilEngine;

void main(){
  var c = Car();  // ElectricEngine working....
  c.work();
  
  var b = Bus(); // OliEngine working....
  b.work();
}

混入的概念和Vue类似,某种程度上也和TS的类型相加很象, 都是通过组合的方式增强原始类