2017-09-26 5 views
2

Ich meine Design Geruch wie zeitliche Kopplung. Void-Methode hat keine Art sichere Beschreibung in seiner Unterschrift über Fälle, warum und wann es aufgerufen werden sollte. Es liegt also nur an der Dokumentation. Und die Verwendung basiert auf dem Vertrauen in die Richtigkeit der Nebenwirkungen.Ist Void-Methode in der Schnittstelle ein Code-Geruch?

Also sollten wir versuchen, leere Methoden in Schnittstellen loswerden?

Antwort

0

Void Methoden sind nicht Design Gerüche.

Objektorientierung (im Gegensatz zur funktionalen Programmierung) ermöglicht Nebeneffekte, zB das Ändern der Interna des Objekts, auf das die Methode angewendet wird. Das ist normal.

Ob das gut ist oder nicht, ist eine andere Frage. Funktionale Programmierung ist in Bezug auf Ausdruckskraft sicherlich stärker. Es ist möglich, Code zu schreiben, der fast nicht missbraucht werden kann (wenn er kompiliert wird).

Auch ungültige Methoden verursachen im Allgemeinen keine zeitliche Kopplung. Zeitliche Kopplung würde bedeuten, dass es eine andere Methode geben muss, die vor oder nach der Methode aufgerufen werden muss, sonst ist der Methodenaufruf nicht sinnvoll.

Natürlich haben Sie die Semantik des Methodenaufrufs wissen, mit anderen Worten, was es bedeutet. Das ist zu erwarten, und wäre bei funktionaler Programmierung auch für Funktionen mit der gleichen Signatur gleich.

+0

Void-Methode hat keine zeitliche Kopplung, wenn es zustandslos ist. Aber die statusfreie Void-Methode könnte die Nutzlast nur über veränderliche Argumente bereitstellen, was wirklich ein Code-Geruch ist. – SerG

Verwandte Themen