プロトタイプベースのプログラミングでは、プロトタイプを複製することによって新しいオブジェクトを作成します。新しいオブジェクトでは、メソッドとデータを追加、削除、または変更して動作を変更できます。私の講義ノートでは、メソッド呼び出しが動的ディスパッチによって達成されると書かれています。つまり、オブジェクトのメソッドが呼び出されると、そのメソッドがオブジェクトで利用可能かどうかを調べ、そうでなければその要求を親オブジェクトに委譲します。メソッドの削除をどのように達成するのですか?オブジェクトには削除されたメソッドのリストがありますが、これは親オブジェクトに委譲すべきではありませんか?私は、この委任の精神を取り除くことにより、より自然なものを追加し、変更することを検討しています。プロトタイプベースのプログラミングにおけるメソッドの削除
0
A
答えて
0
特定のプログラミング言語についてお話されていますか?
概念としては、そのスーパークラスで使用可能なサブクラスからメソッドを削除することは意味がありません。特定の方法で動作を変更できますが、機能を削除することはできません。
「削除」メソッドを呼び出すと、エラーを強制的に発生させる方法があります。Disabling inherited method on derived classにJavaの例と興味深い議論があります。しかし、私の意見では、本当にメソッドを削除する必要がある場合は、おそらくあなたは悪いクラスの設計をしています。
関連する問題
- 1. 関数型プログラミングにおけるメモリリーク
- 2. 機能プログラミングにおけるチェスプログラミング
- 3. JavaのLinkedListデータ構造におけるトラバース、挿入、削除
- 4. Storeメソッドの削除
- 5. 関数型プログラミングにおける関数の型の決定
- 6. 実際のプログラミングにおけるラムダ式の使用
- 7. Kadaneのアルゴリズムにおける動的プログラミングの側面
- 8. 目的のC++プログラミングにおけるオブジェクトの配列
- 9. UWPにおけるFocusメソッドのシーケンス?
- 10. メソッドの追加、削除、および表示
- 11. 機能的プログラミングにおけるシーケンスの理解
- 12. 関数型プログラミングにおけるクロージャの場所
- 13. win32プログラミングにおけるリソースと制御の位置
- 14. アセンブリ:Cプログラミングにおける変数のメモリアドレス
- 15. 遺伝的プログラミングにおけるテストケースの動的数は?
- 16. 機能プログラミングにおける条件付きの "代入"
- 17. 関数型プログラミングにおける状態の変更
- 18. スレッドローカル削除メソッド
- 19. javax.persistence.Entitymanager:削除()メソッド
- 20. SSMS 2008におけるリレーションシップの更新と削除ルールの理解
- 21. Meteor^1.5.2 with React 16.x生産におけるデッドコードの削除エラー
- 22. 削除ログアウト後にエラーを返すメソッドを削除する
- 23. Spring Angularjs - 削除メソッド
- 24. Moqテスト削除メソッド
- 25. リンクリスト内の特定のノードを削除するCプログラミング
- 26. 非同期プログラミングにおけるスレッド状態管理
- 27. 宣言的プログラミングにおけるインターン文字列
- 28. 削除対オペレータの削除(およびvoidポインタ)
- 29. Cプログラミングにおける "一貫性のある状態"の意味
- 30. Delete_fromおよび削除
質問はプロトタイプベースの言語に関することです。クラス階層はありません。 –
同意すると、私はクラスとサブクラスについて話すべきではありません。しかし、プロトタイプの継承には、オブジェクトが互いにリンクする方法で定義される階層もあります。私が言ったように、オブジェクトのすべての機能を必要としない場合は、オブジェクトのプロトタイプインスタンスを使用する必要はありません。プロトタイプオブジェクトを分割するか、もう1つのレベルの継承を使用することをお勧めします。シェイプクラスについて@Chanduの例を非常に参考にしています。 –