BT

InfoQ ホームページ ニュース C#とVisual BasicへのMixin

C#とVisual BasicへのMixin

ブックマーク

原文(投稿日:2011/06/29)へのリンク

Mixinは、便利で他のクラスでも幅広く使える小さな機能である。多重継承をサポートする言語では、mixinは、2つめのベースクラスとして拡張機能をシンプルに追加することができる。C#とVBは、標準ではこのオプションがなく、mixinは通常、大量のコピー&ペーストで肥大化したベースクラスを使って追加される。コンポジションは、ここではあまり助けにならず、mixinされたメソッドとプロパティは、内部オブジェクトのデリゲートになる必要がある。

re-mixプロジェクトは代替手段を提供する。ランタイムコード生成を使用すると、シンプルなクラスがひとつ以上のmixinクラスと連結する。ここには、複数の公開されたインターフェイスが存在するが、実際には使用しない。代わりにオブジェクトの複合とインターフェイスのマッチングで連結される。

たとえば、クラスの完全なクローンのサポートを追加するmixinが欲しいとする。あなたは、ICloneableと呼ばれるインターフェイスを作成して、CloneableMixinを実装して、mixinマッチングする。CloneableMixinは、自動的にクローン操作を行うことができる親オブジェクトへの参照を取得する。

実行時に任意のクラスとCloneableMixinを含むクラスをmixして新しい型を作成する新しい型は、ベースタイプから継承され、mixinを実装したすべてのインターフェイスを実装する。これらの新しいインターフェイスメソッドはすべてmixinのインスタンスにデリゲートされる。

そのほかのmixinにの用途としては、ベースクラスの振る舞いのオーバーライドがある。このモデルでは、mixinのメソッドは、生成されたクラスのベースクラスをオーバーライドする。

re-mixとmixinについては、Stefan Wenig氏とFabian Schmied氏のLang.NETプレゼンテーションでより詳細に学ぶことができる。

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

BT

あなたのプロファイルは最新ですか?プロフィールを確認してアップデートしてください。

Eメールを変更すると確認のメールが配信されます。

会社名:
役職:
組織規模:
国:
都道府県:
新しいメールアドレスに確認用のメールを送信します。このポップアップ画面は自動的に閉じられます。