Methoden für die Zukunft sinnvoll?

J

Joreyk

Bekanntes Mitglied
Ich hab zb eine Klasse mit setMyHandler dann könnte man theoretisch zusätzlich
removeMyHandler auch noch implementieren obwohl man es im Moment gar nicht braucht

sollte man das machen der Vollständigkeit halber oder is das sinnlos


Im Studium hat man gelernt "eine liste braucht die insert methode und die delete methode ansonsten ist es keine Liste" obwohl ich delete nie im programm aufgerufen habe
 
kneitzel

kneitzel

Top Contributor
Die Frage ist, was Dein Ziel ist.

Wenn Dein Ziel ist, eine Liste zu schreiben, dann gehört das alles so dazu.

Aber eine Funktionalität, die nicht angefordert ist, wird in der Regel nicht geschrieben. Wenn die Anforderung irgendwann kommen sollte, dann kann man es immer noch umsetzen. Aber erst einmal ist das Ziel (bei agilem Vorgehen), dass man die Anforderungen zeitnah umsetzt.

"In der Regel" deshalb, weil wir halt Anforderungen manchmal so beschreiben, dass die Funktionalität gleich vollständig implementiert wird so wir es als für die Zukunft wichtig erachten. (Sprich: Wenn die Klasse projektübergreifend verwendet werden soll und daher in einer Library landet.)
 
L

LimDul

Top Contributor
Eine "Schnitstelle/API" muss vollständig implementiert sein, damit sie fertig ist. Aber, und das ist der springende Punkt, was ist die Definition der Schnittstelle/API?

Definiere ich die Schnittstelle als "Ich kann Dinge hinzufügen" - dann ist sie fertig, wenn ich Dinge hinzufügen kann, entfernen gehört nicht dazu. (Vielleicht soll es auch gar nicht gehen)

Und da besteht in der Praxis die Diskrepanz zwischen Theorie und Praxis. In der Theorie aka Studium hat man oft mit theoretischen Konstrukten zu tun, wo z.B. klar ist, was dazu gehört, damit es fertig ist. Bei einer Liste ist klar, dass man da Dinge hinzufügen und entfernen können muss. Weil das Konstrukt Liste einfach allgemein ist. Aber in der Praxis ist das nicht mehr so klar. Wenn ich eine Datenstruktur baue um gewisse Daten zu behandeln, muss ich mir überlegen, welche Operationen muss ich darauf ermöglichen, welche werden gebraucht. Und genau die müssen dann implementiert und der Rest muss nicht (und sollte teilweise auch nicht) implementiert werden. Und da ist eben nicht mehr so trivial wie in der Theorie, weil es da dann oft spezielle Anforderungen gibt.
 
temi

temi

Top Contributor
Eine API sollte immer wohlüberlegt designet werden. Problematisch ist es vor allem, wenn Funktionen in die Schnittstelle gepackt wurden, die später als unbrauchbar/unnötig wieder entfernt werden sollen. Clientcode, der die Schnittstelle verwendet, kann dadurch unbrauchbar werden, wenn er eben diese Funktionen verwendet. In diesem Zusammenhang sollte vor allem auf Convenience-Funktionen verzichtet werden (und auf Methoden, die man in Zukunft "vielleicht" irgendwann mal braucht). Solche Convenience Funktionen können später bei Bedarf z. B. durch statische Utitlity-Klassen ergänzt werden. Siehe im JDK die Klasse "Collections", die verschiedene Convenience Methoden für Kollektionen bereit stellt.

Ansonsten hängt es natürlich in erster Linie von den Anforderungen an die bestimmte Klasse ab.
Im Studium hat man gelernt "eine liste braucht die insert methode und die delete methode ansonsten ist es keine Liste" obwohl ich delete nie im programm aufgerufen habe
Wenn es dein Ziel ist eine Liste zu schreiben, deren Elemente man nicht entfernen können darf, dann sollte es die Möglichkeit dazu auch nicht geben. Die o.g. Collections-Klasse bietet auch eine Methode eine UnmodifiableList<> zu erzeugen. Da darf man dann weder Hinzufügen, noch Entfernen können. Das Beispiel hinkt etwas, denn, wenn du List<> implementieren willst (was auch unmodifiable List tut), dann muss es auch deren Methoden geben, sie dürfen halt nichts tun.
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Interface Design von HookUp oder Callback Methoden für eigenes Framework Allgemeine Java-Themen 9
D Code für bereitgestellte Methoden Allgemeine Java-Themen 1
X Eigene Annotation - mit Bedingung für ganze Klassen oder Methoden Allgemeine Java-Themen 2
M Methoden/Klassen für andere Projekte Allgemeine Java-Themen 4
D Passende Name für Methoden finden Allgemeine Java-Themen 3
F deutsche namen für verben/substantive für Methoden/Klassen Allgemeine Java-Themen 10
tfa Unit-Tests für private Methoden Allgemeine Java-Themen 25
X Default-Werte für Methoden-/Funktions-Parameter Allgemeine Java-Themen 2
nonickatall Methoden Kann man Klassen/Methoden aus Variablen heraus aufrufen? Allgemeine Java-Themen 6
L Hä? Lambda-Ausdruck geht, Methoden-Referenz nicht Allgemeine Java-Themen 8
B Methoden Java Getter und Setter Methoden Allgemeine Java-Themen 9
Y Java Methoden unterschiedliche Zahlenreihen Allgemeine Java-Themen 2
F Sich automatisch aufrufende Java-Methoden Allgemeine Java-Themen 2
J Namen von Methoden über Reguläre Ausdrücke bearbeiten Allgemeine Java-Themen 6
D Methoden Methoden anpassen und fehlende Funktionen hinzufügen Allgemeine Java-Themen 475
V Threads Probleme beim Aufrufen von Methoden einer anderen Klasse (Threads) Allgemeine Java-Themen 14
R Statistische Methoden (Mathematik) Aufgabe Allgemeine Java-Themen 9
X Brüche kürzen mittels Methoden und ggT Allgemeine Java-Themen 15
L Operatoren Java Reflections: Alle Methoden einer Klasse aufrufen ohne Exceptions Allgemeine Java-Themen 5
L mehrere Methoden Allgemeine Java-Themen 19
KeexZDeveoper Zugriff auf Methoden vom Server Allgemeine Java-Themen 7
B StAX Parser - mehrere Methoden, ein XML Allgemeine Java-Themen 4
F Operationen/Methoden einen WebService im Browser mit Apache Axis aufrufen Allgemeine Java-Themen 4
A Automatisches Methoden Laufzeiten logging? Allgemeine Java-Themen 7
M Quellcode von Java-Methoden Allgemeine Java-Themen 9
rentasad Design-Frage - Interfaces, Klassen, statische Methoden Allgemeine Java-Themen 3
N HashMap und Methoden richtig einbinden Allgemeine Java-Themen 2
R Variable durch mehrere Methoden ändern und nutzen Allgemeine Java-Themen 17
Q-bert Methoden Methoden in Java Allgemeine Java-Themen 13
D Methoden Java-Aufgabe Allgemeine Java-Themen 2
M Compiler-Fehler Methoden-Referenz Allgemeine Java-Themen 5
X Threads Externe Variablen in Run Methoden verändern Allgemeine Java-Themen 4
S 2 methoden mit gleichen namen und ein Interface Allgemeine Java-Themen 9
F Enum-werte als Methoden-Parameter übergeben Allgemeine Java-Themen 6
N Vererbung Design-Problem mit vorhandenen, von der Klasse unabhängigen Methoden Allgemeine Java-Themen 12
E OOP Objekte und Methoden Allgemeine Java-Themen 1
K Java ruft Methoden nicht der Reihe nach auf Allgemeine Java-Themen 14
N Methoden Methoden einer Klasse auf Grundlage eines Strings aufrufen Allgemeine Java-Themen 6
T Java Array in Methoden Allgemeine Java-Themen 1
P Entity Objekt Methoden vs Service methoden Allgemeine Java-Themen 2
R Signatur von Methoden in eine Datei schreiben? Allgemeine Java-Themen 4
A Methoden verändern Allgemeine Java-Themen 12
F Methoden Arraylist weiterverwenden nach methoden Aufruf Allgemeine Java-Themen 2
J Best Practice Testen von protected Methoden Allgemeine Java-Themen 7
L Methoden "Schiffe versenken" Quellcode in Methoden umwandeln Allgemeine Java-Themen 6
G Matrix reduzieren zwei Methoden Allgemeine Java-Themen 2
Sogomn Best Practice "Doppelte" Methoden Allgemeine Java-Themen 3
Paul15 String Methoden Allgemeine Java-Themen 7
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
F Testen von Methoden Allgemeine Java-Themen 3
S "Vererben" statischer Felder/Methoden Allgemeine Java-Themen 4
F Methoden in der Enumeration Klasse Allgemeine Java-Themen 1
S Methoden ohne Methodenkopf ?! Allgemeine Java-Themen 5
T Überschreiben von Methoden Allgemeine Java-Themen 6
M Methoden werden in falscher Reihenfolge bearbeitet Allgemeine Java-Themen 10
S Methoden Methoden überschreiben Allgemeine Java-Themen 3
N Threads statische Methoden in Threads Allgemeine Java-Themen 5
O Java-Obfuscator, welcher einzelne Methoden, Klassen und Ordnerstrukturen ausnehmen kann. Allgemeine Java-Themen 1
A also definition von klassen und string methoden und algorithmik Allgemeine Java-Themen 13
A Threads Lock über mehrere Abschnitte in verschiedenen Methoden Allgemeine Java-Themen 5
S Methoden Frage Allgemeine Java-Themen 2
R Wie kann man diese Methoden in arrays etablieren? Allgemeine Java-Themen 8
M Methoden in Rescources speichern Allgemeine Java-Themen 4
G Synchronisation nicht statischer Methoden Allgemeine Java-Themen 4
A Vererbung finale Methoden überschreiben Allgemeine Java-Themen 24
A Methoden parallelisieren? Allgemeine Java-Themen 2
L Methoden methoden an generischen klassentyp anpassen Allgemeine Java-Themen 5
C Methoden Übernahme von standart nativen Methoden? Allgemeine Java-Themen 9
B Zusammenfassen verschiedener ähnlicher Methoden Allgemeine Java-Themen 8
K JNI: Methoden aus unterschiedlichen Threads aufrufen Allgemeine Java-Themen 3
P Unterschiedliche Clone- Methoden Allgemeine Java-Themen 5
MQue Spezialfrage Überschreiben von Methoden Allgemeine Java-Themen 14
B Methoden Alle Methoden und Variablen aus Java-Dateien auslesen. Allgemeine Java-Themen 7
M Rekursive Methoden Allgemeine Java-Themen 3
S Programm das alle aufgerufenen Methoden ausgibt..? Allgemeine Java-Themen 6
F ListIterator (next & previous methoden) Allgemeine Java-Themen 5
W Frage zu Refactoring statischer Methoden Allgemeine Java-Themen 4
T Methoden per String-Namen aufrufen Allgemeine Java-Themen 2
C Kapselung Warum graift man auf Variablen nur über Methoden und nich direkt zu? Allgemeine Java-Themen 10
M Methoden Static Methoden und Thread??? Allgemeine Java-Themen 4
A Methoden ohne Referenzen finden Allgemeine Java-Themen 9
turmaline OOP zwei gleiche Methoden mit kleinen Unterschieden Allgemeine Java-Themen 15
G JUnit Test Methoden in anderen Thread verlagern Allgemeine Java-Themen 4
K Auf Methoden der Runnable Klasse zugreifen Allgemeine Java-Themen 2
S Methoden Class.forName() >> Methoden - Reihenfolge Allgemeine Java-Themen 5
D Wann sollte ich statische Methoden und Variablen benutzen? Allgemeine Java-Themen 44
A Methoden laufen im Konstruktor, außerhalb allerdings nicht Allgemeine Java-Themen 2
M Generische Methoden mit Java und globale Variablen Allgemeine Java-Themen 9
GianaSisters ArrayList in Methoden übergeben Allgemeine Java-Themen 3
S static methoden Allgemeine Java-Themen 9
J coole Methoden Allgemeine Java-Themen 6
R Methoden in einem Thread unterschiedlich oft ausführen Allgemeine Java-Themen 4
A OOP: Überschreiben/Implementierung von Methoden Allgemeine Java-Themen 5
P Methoden und Werte Allgemeine Java-Themen 17
E Performace/Ausführungszeit von Methoden ermitteln Allgemeine Java-Themen 4
C Was bedeutet '~' bei Methoden Parametern? Allgemeine Java-Themen 2
J Logging mehrerer Methoden Allgemeine Java-Themen 21
I Template Method pattern mit "geschützten Methoden" Allgemeine Java-Themen 5
S Stacktrace von allen Methoden erhalten..? Allgemeine Java-Themen 4
Eldorado Benennung von Methoden Allgemeine Java-Themen 2

Ähnliche Java Themen


Oben