ポリモーフィズム

ポリモーフィズム(Polymorphism)とは、主にオブジェクト指向プログラミングで、あるオブジェクトへの操作が呼び出し側(sender)ではなく、受け手のオブジェクト(receiver)によって定まる特性のこと。訳語に多態性多相性多様性などの他、読みもポリモフィズムポリモルフィズムなど多少揺れがある。

古典的なプログラミング言語では関数や手続きはそれぞれ一意に識別される名前と結びついており、従って異なった動作を実現するためには異なった名前を用いる必要があった。

例えば、何かの値を文字列形式に変換する最も単純な場合を考える。古典的な言語では、次のように別々の関数になっていなければならない。

古典的な変換関数:
数字を文字列にする場合
string = StringFromNumber(number)
日付値を文字列にする場合
string = StringFromDate(date)

一方多態を行なう場合では、StringValue のような汎用の述語を定義し、型別にそれぞれ適切な変換方式を定義させることでオブジェクトの種別によらない抽象度の高い変換形式を実現できる。

多態を行なう変換方式:
見た目上、型によらない変換が可能
 string = number.StringValue
 string = date.StringValue

無論、StringValueの定義は型別に行なわなければならないので、総体として記述量が減少するわけではない(継承による再利用はありうる)。また、何をもって「正しい動作」とするのかはオブジェクトの設計に依存するため、多態を使いこなすにはシステム全体を見通す優れた設計能力が要求される。

[編集] 関連項目


system wymiany linków system wymiany linków SEO Tools wymiana linkami system wymiany linków tanie kredyty gotówkowe kreatyna Plaza 3 star hotel Los Angeles krynica noclegi Sejm Tyk