|
@ -263,7 +263,7 @@ Die Polymorphie ist ein Konstrukt der objektorienten Programmierung. Sie lässt |
|
|
- Nachteile: |
|
|
- Nachteile: |
|
|
- Einarbeitung |
|
|
- Einarbeitung |
|
|
- alle Muster müssen bekannt sein (_und geübt sein!_) |
|
|
- 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 |
|
|
- sind im Code nicht umbedingt sichtbar |
|
|
- vor allem bei schlechter Bezeichnerwahl |
|
|
- 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) |
|
|
- Mirkoebene --> Nutzung auf Modulebene (bzw. innerhalb von Modulen) |
|
|
|
|
|
|
|
|
- Kategorien von Entwurfsmustern: |
|
|
- 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 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|