ポリモーフィズムとは

ポリモーフィズムとは

ポリモーフィズムとは、共通のメッセージを使用して、複数のクラスを制御することです。ポリモーフィズムとカタカナ表記される他に、多態性、多相性等と訳されることもあります。

カプセル化とも関連しますが、クラス特有の情報はクラス内部に集めることで、外部からはクラス特有の情報を気にする必要が無くなります。

下の例のように、BookとDVDというクラスがあったとき、show_sample()というサンプルを表示する命令で両方のクラスを扱うことができます。Bookクラスにshow_sample()という命令を送ると、テキストデータ(概要あるいは目次あるいは本文の一部等)が表示されます。DVDクラスにshow_sample()という命令を送ると、映像が表示されます。(厳密にはサンプルを表示するためのHTMLを返す。)

class Book extends Item {
    public function show_sample() {
        return "<p>";
        return "<?php file_get_contents(\"".$this->datafile."\");?>";
        return "</p>" ;
    }
}

class DVD extends Item {
    public function show_sample() {
        return "<p>";
        return "<embed src=\"".$this->datafile."\"></embed>";
        return "</p>";
    }
}

もし、BookやDVDと同様なクラスを新しく作成する場合は新規クラスを作成するだけでよいので、プログラムの更新や拡張が楽になります。

タグ

トラックバック&コメント

この記事のトラックバックURL:

トラックバック

  1. [...] ポリモーフィズムとはで紹介したサンプルを、ポリモーフィズムを利用しないで書いたスクリプトは、以下のようになります。 [...]

    ピングバック投稿者: オブジェクト指向PHP » ポリモーフィズムでない例 — 2007年10月15日


コメント

  1. [...] ポリモーフィズムとはで紹介したサンプルを、ポリモーフィズムを利用しないで書いたスクリプトは、以下のようになります。 [...]


コメントを投稿する




»
«