Documentationとは?

ActionScript と、その原型である JavaScript は、いずれもプロトタイプベースの言語です。プロトタイプベースの言語では、実行時にクラス定義を変更して機能を追加することが容易にできます。カスタムクラスに他のクラスのメソッドを追加するには、そのカスタムクラスのプロトタイプオブジェクトのインスタンスにアクセスします。
ActionScript の個々のオブジェクトには prototype プロパティがあり、それを使用することで、カスタムクラスに機能を追加できます。Flash では、プロトタイプオブジェクトのメソッドとプロパティが、そのオブジェクトのすべてのインスタンスに適用されます。prototype プロパティのデータ型はオブジェクトなので、プロトタイプオブジェクト経由で任意の数のプロパティやメソッドをオブジェクトに追加できます。
Mix-in は、継承を使用せず、動的に既存クラスのメソッドをカスタムクラスに追加するための簡単な手段です。クラスを Mix-in することで、既存クラスのメンバーを、カスタムクラスのプロトタイプオブジェクトに追加できます。ActionScript では多重継承がサポートされていませんが、Mix-in を使用すれば、他の Flex クラスを継承してカスタムクラスを作成する通常の方法では使用できない機能をカスタムクラスに追加できます。
この "Mix-in" という用語は、1970 年代に MIT 学生の溜まり場として人気があった Steve's というアイスクリーム店で生まれたと言われています。Steve's では、チョコレートやバニラなどの基本フレーバーを指定した上にクッキー、ナッツ、キャンディーなどを追加できるシステムでしたが、そうした追加アイテムが "Mix-in" と呼ばれていました。その後、Symbolics Flavors というシステムがこの用語を採用して、スタンドアローンクラスを "フレーバー" と呼び、ヘルパークラスを "Mix-in" と呼ぶようになりました。
オブジェクト指向言語における Mix-in とは、他のクラスに機能を追加するために使用される最小限のユニットです。アイスクリーム店でナッツだけをボウル一杯注文する人がいないのと同じように、Mix-in と呼ばれるものは原則として単体では使用されません。そうではなく他の基本クラスへと容易に追加して使用され、限られた目的に特化した小さい単位の機能を提供します。Mix-in によって追加されることが多い機能の例としては、印刷機能、画面レンダリング機能、イベント送出機能などがあります。
Flex では、たとえば、EventDispatcher クラスを継承していないクラスにイベント送出機能を追加する場合に Mix-in を使用できます。また、カスタムの DataProvider を作成する場合は DataProvider クラスを実装し、DataProvider API のすべてのメソッドをオーバーライドする必要があるため、EventDispatcher など他のクラスが持つ機能を継承できません。そこで Mix-in を使用すれば、DataProvider の各種メソッドを実装すると同時に、EventDispatcher クラスの機能である dispatchEvent() メソッドの呼び出しも可能にすることができます。
Mix-in を使用すると、多くの場合、オブジェクト指向の原則に沿った正しいコーディング作法に反することになるので、Mix-in を使用してクラスを作成する前にはこの点を十分に考慮してください。Mix-in はカスタムクラスに機能を追加するための単純で強力な手段ですが、その反面、カスタムオブジェクトの階層構造を慎重に設計すれば避けられるような依存関係やオーバーヘッドが生じます。

[ 184] Macromedia - Flex Documentation: Mix-in の使用 - Mix-in の概要
[引用サイト]  http://www.adobe.com/support/documentation/jp/flex/1/mixin/mixin2.html



お気に入り



  • track feed
    • seo