2016-07-01 6 views
0

プロトタイプベースのプログラミングでは、プロトタイプを複製することによって新しいオブジェクトを作成します。新しいオブジェクトでは、メソッドとデータを追加、削除、または変更して動作を変更できます。私の講義ノートでは、メソッド呼び出しが動的ディスパッチによって達成されると書かれています。つまり、オブジェクトのメソッドが呼び出されると、そのメソッドがオブジェクトで利用可能かどうかを調べ、そうでなければその要求を親オブジェクトに委譲します。メソッドの削除をどのように達成するのですか?オブジェクトには削除されたメソッドのリストがありますが、これは親オブジェクトに委譲すべきではありませんか?私は、この委任の精神を取り除くことにより、より自然なものを追加し、変更することを検討しています。プロトタイプベースのプログラミングにおけるメソッドの削除

答えて

0

特定のプログラミング言語についてお話されていますか?

概念としては、そのスーパークラスで使用可能なサブクラスからメソッドを削除することは意味がありません。特定の方法で動作を変更できますが、機能を削除することはできません。

「削除」メソッドを呼び出すと、エラーを強制的に発生させる方法があります。Disabling inherited method on derived classにJavaの例と興味深い議論があります。しかし、私の意見では、本当にメソッドを削除する必要がある場合は、おそらくあなたは悪いクラスの設計をしています。

+0

質問はプロトタイプベースの言語に関することです。クラス階層はありません。 –

+0

同意すると、私はクラスとサブクラスについて話すべきではありません。しかし、プロトタイプの継承には、オブジェクトが互いにリンクする方法で定義される階層もあります。私が言ったように、オブジェクトのすべての機能を必要としない場合は、オブジェクトのプロトタイプインスタンスを使用する必要はありません。プロトタイプオブジェクトを分割するか、もう1つのレベルの継承を使用することをお勧めします。シェイプクラスについて@Chanduの例を非常に参考にしています。 –

関連する問題