Guter Code in Java

Beschreibung

CodeBC Karteikarten am Guter Code in Java, erstellt von Joel Weih am 26/09/2018.
Joel Weih
Karteikarten von Joel Weih, aktualisiert more than 1 year ago
Joel Weih
Erstellt von Joel Weih vor etwa 6 Jahre
2
0

Zusammenfassung der Ressource

Frage Antworten
Komposition Klassen mit anderen Klassen aufgebaut: Eine Klasse enthält eine andere Klasse als Eigenschaft Dadurch können wie gewünscht Klassen untereinander verbunden werden Die Funktionen oder Methoden beider Klassen können dabei gebunden aufgerufen werden
Unterschied zur Vererbung(Komposition) Durch dieses Prinzip werden Klassen entkoppelt, was zu flexibleren und stabileren Entwürfen führt. So ist es möglich, zur Laufzeit das Verhalten einer Klasse zu verändern Die Objekte der zwei Klassen müssen existieren und können dann z.B. mit Hilfe eines Konstruktors verbunden werden
Vererbung In Java mit dem Schlüsselwort “extends” verwendet Alle Funktionen der Oberklasse werden in der Unterklasse aufrufbar Bei der Vererbung muss nicht unbedingt ein Objekt der Oberklasse instanziert werden Unterschied zur Komposition: Die Klassen werden direkt verbunden
Vorteile von Schnittstellen Was beheben Schnittstellen? -> Einfachvererbung Eine Klasse auf einer Ebene kann nicht von mehreren Typen erben (Java) Eine Klasse kann neben ihrer Oberklasse mit Schnittstellen mehrere Typen sammeln Schnittstellen sagen etwas über das Was aus und die konkrete Implementierung sagt etwas über das wie Im objektorientierten soll das was vom wie getrennt bleiben Wodurch wir die Möglichkeit haben eine Funktionalität zu verwenden ohne uns mit Implementierungs-Details beschäftigen zu müssen.
Vorteile von abstrakten Datentypen ADT(Abkürzung) abstrahieren von Implementierung Speichern und Verwalten der Daten unabhängig vom Inhalt Softwaremodul mit Operationen(op1,.., opn) als Schnittstelle Man verwendet einen ADT, ohne zu wissen, wie er intern realisiert ist (Geheimnisprinzip) ausschließlich über dessen Schnittstelle(Kapselung). Insbesondere sind die eigentlichen Datenelemente (i.d.R.) nicht direkt zugänglich. Die Funktionalität muss daher unabhängig von der internen Realisierung spezifiziert sein.
Überflüssigen Code eliminieren? Log Funktionen? Kommentierungen reduzieren Leerzeilen reduzieren -> dienlich der Übersicht? Sich wiederholende Elemente/Funktionen/Variablen auslagern und aufrufen anstatt sie überall reinzukopieren
Wie lässt sich eine Vererbung durch Komposition ersetzen? Um dieses Entwurfsprinzip anzuwenden, werden Algorithmen, die in einer Klasse Verwendung finden können, als separate Klassen entworfen, die vorzüglich von Schnittstellen abgeleitet sind. Die Klassen, die eventuell einen dieser Algorithmen ausführen sollen, beinhalten eine Membervariable des Typs der gemeinsamen Schnittstelle, der (auch zur Laufzeit) einer dieser Algorithmen zugewiesen werden kann. Auf diese Art und Weise sind die Klassen von den Algorithmen und deren Details getrennt – weitere Entwicklungen und Änderungen an den Algorithmenklassen haben kaum Einfluss auf die Klasse, was unnötige Anpassungen hinfällig macht. Dadurch wird der Code nicht verändert, was wiederum ein anderes Entwurfsprinzip, das Open-Closed-Prinzip, befürwortet.
Zusammenfassung anzeigen Zusammenfassung ausblenden

ähnlicher Inhalt

Urlaub und Reisen
JohannesK
10 Mind Mapping Strategien für Lehrer
AntonS
Tag der deutschen Einheit
barbara91
Streite/Gesetzliche Schuldverhältnisse
myJurazone
Stilmittel Deutschabitur
Johanna DB
GPSY PEPS (Antworten während der Bearbeitung)
Mischa Kräutli
Vetie Tierhygiene-Quiz 2013
Carolina Heide
Vetie Histopatho 2012 und 2011
Ann-Kathrin Riedel
MS-1.3 Folienpaket 2
Markus Voßmann
Onlinequiz zu MS-4.2 Kapitel_3_Teil_I
Deborah Büscher
Vetie - spez Patho 2019
Johanna Tr