- 869 名前:デフォルトの名無しさん mailto:sage [04/10/24 13:24:51]
- >>844
手続き指向に対してオブジェクト指向はいわば「データ指向」といえる。 オブジェクトのデータ構造はオブジェクト内に隠蔽されているが、手続き自身も オブジェクト内に隠蔽されているので、この手続きの再利用性が低くなる。 オブジェクト内の手続きを再利用する方法として継承を使うことができるが、 継承はクラス間の関連としては大変密な結合であり、単に手続きを再利用する ためだけに派生クラスを作成して実装を継承するのは結合度が強くなって しまうためよくない。 これらに対して、ジェネリック・プログラミングは「アルゴリズム指向」である。 これは、手続きの再利用性を求めて単に手続き指向の世界に回帰したように 見えるかもしれないが、そうではない。 ジェネリック・プログラミングにおける手続き(アルゴリズム)は、手続き指向の 手続きと違い、データの構造は知る必要がない。そのアルゴリズムを実装する ために必要な操作をオブジェクトから開示してもらうことにより処理を行う。 従って、あるアルゴリズム(手続き)に処理してもらうために必要な最小限の インタフェースをデータ型から抽出することが、ジェネリックプログラミングを 実現する第一歩となる。
|

|