Bei der prototypbasierten Programmierung erstellt man durch Klonen eines Prototyps neue Objekte. Im neuen Objekt kann man das Verhalten ändern, indem man Methoden und Daten hinzufügt, entfernt oder modifiziert. In meinen Vorlesungsnotizen wird geschrieben, dass ein Methodenaufruf durch dynamischen Versand erreicht wird, d. H. Wenn eine Methode für ein Objekt aufgerufen wird, schauen wir, ob die Methode im Objekt verfügbar ist und wenn nicht, wird die Anforderung an ihre übergeordneten Objekte delegiert. Wie erreichen wir die Methodenentfernung? Enthält das Objekt eine Liste entfernter Methoden, die nicht an übergeordnete Objekte delegiert werden sollen? Ich denke, Hinzufügen und Ändern als natürlicher in diesem Geist der Delegation als Entfernung ...Methodenentfernung bei prototypbasierter Programmierung
0
A
Antwort
0
Sprechen Sie über eine bestimmte Programmiersprache?
Als Konzept ist es nicht sinnvoll, eine Methode aus einer Unterklasse zu löschen, die in ihrer Oberklasse verfügbar ist. Sie können das Verhalten auf eine bestimmte Weise ändern, die Funktionalität jedoch nicht entfernen.
Es gibt Möglichkeiten, einen Fehler zu erzwingen, wenn Sie eine "removed" -Methode aufrufen, siehe hier Disabling inherited method on derived class für ein Java-Beispiel und eine interessante Diskussion. Aber meiner Meinung nach, wenn Sie wirklich eine Methode entfernen müssen, haben Sie wahrscheinlich ein schlechtes Klassen-Design.
Denken Sie daran, dass es sich bei der Frage um prototypbasierte Sprachen handelt. Es gibt keine Klassenhierarchie. –
Zustimmen, ich sollte nicht über Klassen und Unterklassen sprechen. Aber in der prototypischen Vererbung gibt es auch eine Hierarchie (definiert durch die Art und Weise, wie die Objekte miteinander verknüpft sind). Wie gesagt, ich denke nicht, dass Sie eine Prototyp-Instanz eines Objekts verwenden sollten, wenn Sie nicht alle Funktionen dieses Objekts benötigen. Es ist eine bessere Idee, das Prototyp-Objekt zu teilen oder eine weitere Vererbungsebene zu verwenden. Ich finde das Beispiel von @Chandu über Shape-Klasse sehr lehrreich. –