Worum geht es ?
- Design-Patterns beziehen sich auf
Software Architektur und Design.
- Sie beinhalten die statischen und dynamischen Strukturen und Collaborations
von erfolgreichen und bewährten Lösungen.
- Es geht
nicht um effiziente Algorithmen, smarte Datenstrukturen, o.ä.
- Design-Patterns stellen
Schlüsseltechnologie
für OO Design dar, um Wiederverwendung, Erweiterbarkeit, Modularität
zu erreichen.
- Sie beziehen sich auf bestimmten Problembereich.
Patterns sind
problem/solution Paar in diesem Zusammenhang
- Neue Stufe der Abstraktion: routinierte OO Programmierer sind vertraut
mit den Standard Patterns
Diskussion auf dieser Ebene.
Analogie Schach ...
Zunächst lernt man wesentliche Regeln und Anforderungen
(Namen der Figuren, erlaubte Züge, Schachbrett, ...)
Als nächstes die Grundprinzipien
(Wert der Figuren, strategische Bedeutung der Positionen, ...)
Um aber Schachmeister zu werden muss man intensiv die Meisterpartien
studieren. Darin finden sich Muster von Stellungen, Situationen, die muss man
verstehen, abspeichern, wiederverwenden. Im Schach gibt's Hunderte solcher
Patterns
... zu Software-Design
Zunächst lernt man wesentliche Regeln und Anforderungen
(Datentypen, Syntax, Kontrollstrukturen, Funktionen, ...)
Als nächstes die Grundprinzipien
(Structured programming, modular programming,
object-oriented programming, ...)
Um aber Design-Meister zu werden muss man intensiv die Lösungen anderer
Meister studieren. Darin finden sich Muster von Problemen, Situationen,
die muss man
verstehen, abspeichern, wiederverwenden.
In Basis/Standard-Werk zu Design-Patterns werden
23 Patterns diskutiert.
Aber noch viele weitere in nachfolgender Literatur !
Ausführliche Diskussion auch nur der 23 Standard-Patterns
im Rahmen dieses Kurses nicht sinnvoll. Aus Zeitgründen sowieso, aber v.a.
wg. Anspruch:
- Die meisten Patterns sind komplex. Meist ist es schon schwierig
das Problemfeld zu erfassen und nachzuvollziehen.
- Unterschiede zwischen Patterns/Problemfeld z.T. sehr subtil
- I.a. solide Erfahrung erforderlich in OO Programmieren und damit verbundener
Probleme
Dennoch: Es gibt einige
leicht zu verstehende und
nachvollziehbare Patterns, drei davon werden wir diskutieren:
Template, Singleton, Observer
Subsections
GDuckeck
2019-08-01