diff --git a/Lerntagebuch.md b/Lerntagebuch.md index bb66159..2821a6c 100644 --- a/Lerntagebuch.md +++ b/Lerntagebuch.md @@ -263,7 +263,7 @@ Die Polymorphie ist ein Konstrukt der objektorienten Programmierung. Sie lässt - Nachteile: - Einarbeitung - alle Muster müssen bekannt sein (_und geübt sein!_) - - allein 22 Muster von der _Gang of 4_ und es gibt noch weitere + - allein 22 Muster von der _Gang of Four (GoF)_ und es gibt noch weitere - sind im Code nicht umbedingt sichtbar - vor allem bei schlechter Bezeichnerwahl @@ -273,7 +273,47 @@ Die Polymorphie ist ein Konstrukt der objektorienten Programmierung. Sie lässt - Mirkoebene --> Nutzung auf Modulebene (bzw. innerhalb von Modulen) - Kategorien von Entwurfsmustern: - + - Erzeugungsmuster + - Erbauer + - _alte/vorhandene_ Objekte/Klassen werden zusammengesetzt + - Fabrikmethode + - erzeugt nicht ein sondern viele neue Objekte --> keine Verbindung alter Objekte + - abstrakte Fabrik + - erzeugt polymorphe Objekte + - diese Objekte können zur Laufzeit neue Objekte erzeugen + - Singleton + - Ein Objekt auf das während der Laufzeit alle anderen zugreifen + - Singleton als Entwurfsmuster + - schlechte Idee --> da schlecht testbar und nicht wiederverwertbar + - Multiton + - Ableitung des Singleton --> begrente Anzahl erzeugter Objekte + - Anwendung z. B. bei Datenbanken die nur eine bestimmte Anzahl an Verbindungen zulassen + - Strukturmuster + - Adapter + - wandelte Schnittstelle um um Zugriff zu ermöglichen + - Nachrüstungsschnittstellenmuster + - _übersetzt_ wie der _normale_ Adapter auch Schnittstelle so dass sie für die Zielklasse zugänglich ist + - fügt noch neue Funktionalität/Informationen hinzu die von der Quelle nicht geliefert wurden + - nützlich bei alten Systemen + - Brücke + - entkoppelt zwei Klassen --> können seperat genutzt werden + - Dekorierer + - _dekoriert_ fügt neue Funktionalität einer Klasse hinzu + - auch während der Laufzeit möglich + - Fassade + - gleiche Funktionalität wie Adapter + - reduziert aber die Anzahl an Schnittstellen/Interface + - weniger Funktionen + - Programmierer kann einfacher mit arbeiten + - Floodgate/Fliegengewicht + - ein Objekt auf das viele andere Objekte zugreifen + - Accumulator + - bewahrt Daten auf oder berechnet + - Beobachter + - Reaktion auf Ereignis + - informiert Quelle wenn neue Daten vorhanden sind + - keine unnötigen Abfragen in spezifiertem Zeitintervall +