mixin
フラーの公式ドキュメントによると、mixinは複数のクラス階層でコードを再利用する方法です.また、mixinはwithキーワードで使用されます.https://dart.dev/guides/language/language-tour#adding-features-to-a-class-mixins
クラスは、他のクラスを継承することによって、継承クラスのコードを再利用できます.
しかし,以下のようにクラスの特徴は単一クラスのみを継承することである.
mixinは特に共有機能クラスの多い大規模なプログラムに適している.Aというクラスを親とするBのメソッドを再定義する必要がある場合.
mixinを使用する場合は、必要なメソッドを持つクラスをに追加するだけです.
つまり、共有する機能をmixinと定義すると、メンテナンスが非常に容易になります.
クラスは、他のクラスを継承することによって、継承クラスのコードを再利用できます.
しかし,以下のようにクラスの特徴は単一クラスのみを継承することである.
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と定義すると、メンテナンスが非常に容易になります.
Reference
この問題について(mixin), 我々は、より多くの情報をここで見つけました https://velog.io/@dbscks1239/mixinテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol