mixin


フラーの公式ドキュメントによると、mixinは複数のクラス階層でコードを再利用する方法です.また、mixinはwithキーワードで使用されます.https://dart.dev/guides/language/language-tour#adding-features-to-a-class-mixins
クラスは、他のクラスを継承することによって、継承クラスのコードを再利用できます.
しかし,以下のようにクラスの特徴は単一クラスのみを継承することである.
void main() {
FlyingHuman().run();
}  // 실행결과 : running

class Run {
  
  void run(){
    print('running');
  }
  
}

class Fly {
  
  void fly(){
    print('flying');
  }
  
}

class FlyingHuman extends Run{
}
mixinを使用すると、複数のクラスを継承できます.したがって、複数のクラスからコードを再利用することができます.
void main() {
FlyingHuman().move();
}  /* 실행결과 : flying
                running
*/
mixin Run {
  
  void run(){
    print('running');
  }
  
}

mixin Fly {
  
  void fly(){
    print('flying');
  }
  
}

class FlyingHuman with Run,Fly{
  
  void move(){
    fly();
    run();
  }
  
}
mixinの大規模なプログラムにおける役割
mixinは特に共有機能クラスの多い大規模なプログラムに適している.Aというクラスを親とするBのメソッドを再定義する必要がある場合.
mixinを使用する場合は、必要なメソッドを持つクラスをに追加するだけです.
つまり、共有する機能をmixinと定義すると、メンテナンスが非常に容易になります.