0Pricing
Dart Academy · レッスン

withキーワードによるMixin

単一継承を使わずに機能を追加する

「withキーワードによるMixin」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。

単一の親を超えて

Dartのクラスは親を1つしか拡張できませんが、複数の場所から機能を取り入れたいことがあります。mixinを使うと、追加の動作をきれいに組み込めます。🧩

mixinを宣言する

mixinキーワードを使って宣言します。クラスに似ていますが、単独でインスタンス化するのではなく、他のクラスに組み込むことを目的としています。

mixin Swimmer {
  void swim() => print('Swimming');
}

withキーワード

クラス宣言の後にwithを記述してmixinを適用します。そのクラスは、mixinが定義するすべてのメソッドをすぐに利用できるようになります。

class Fish with Swimmer {}
// Fish().swim() works

複数のmixinを組み込む

複数のmixinはコンマで区切ります。クラスには多数のmixinを一度に組み込むことができ、それぞれが独自の動作を追加します。

class Duck with Swimmer, Flyer {}

extendsとwithを組み合わせる

mixinは継承と組み合わせて使えます。まずextendsで1つの親を指定し、その後に組み込みたいmixinをwithで指定します。

class Duck extends Bird with Swimmer, Flyer {}

mixinは状態を保持する

mixinはメソッドだけでなくフィールドも保持できます。それを組み込んだクラスは、その状態も自身の一部として持つことになります。

mixin Counter {
  int count = 0;
  void tick() => count++;
}

インスタンス化はできない

純粋なmixinに対してnewを記述することはできません。mixinは実際のクラスに組み込むためだけに存在するため、Dartは直接の構築を禁止します。

異なる継承ツリーで再利用する

スーパークラスとは異なり、同じmixinを完全に関係のないクラスに追加できます。これにより、無理に同じファミリーへ組み込まずにコードを共有できます。

mixinは型である

mixinを組み込んだクラスは、そのmixinの型としても扱われます。FishをSwimmer型の変数に格納して、共有メソッドを呼び出すことができます。

Swimmer s = Fish();
s.swim();

継承よりコンポジション

mixinでは、小さく焦点の絞られた機能を組み合わせる方法を重視します。深い階層を無理に作るのではなく、再利用可能な部品から動作をコンポーズします。

mixinの役割を絞る

優れたmixinは、ロギングやシリアライズなど、1つの仕事をうまく行います。小さな単一目的のmixinなら、予期しない競合を起こさずに組み合わせられます。

クイックチェック

mixinをクラスに組み込む方法を思い出してみましょう。

まとめ

mixinを宣言し、withキーワードで適用し、複数のmixinを組み合わせ、関係のないクラス間で動作を共有しました。🧩

よくある質問

「withキーワードによるMixin」レッスンは無料ですか?

はい。「withキーワードによるMixin」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。

「withキーワードによるMixin」で何を学びますか?

単一継承を使わずに機能を追加する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Dart Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。

「withキーワードによるMixin」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDart Academyレッスンでコードを書いて実行できますか?

はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. extendsとメソッドのオーバーライド
  2. superの呼び出しとコンストラクターチェーン
  3. withキーワードによるMixin
  4. on制約とMixinの順序
← Dart Academyに戻る