| Weitere Artikel aus dem Foto Blog |
| Teilen |
Die Idee der Entwurfsmuster in der Softwareentwicklung wurde aus der Architektur übernommen. Der Architekt Christopher Alexander hatte in den 1970er Jahren eine Sammlung von Entwurfsmustern zusammengestellt. Die wesentliche Aufgabe dieser Muster war, die Bewohner der zu bauenden Strukturen in den Entwurfsprozess einzubinden.
Grundlagen
Erich Gamma, Mitte der 1990er Jahre Wissenschaftler an der Hochschule in Zürich, promovierte über die Übertragung dieser Methode auf die Softwareentwicklung. Im Anschluss ging er nach Amerika, wo er zusammen mit Richard Helm, Ralph Johnson und John Vlissides das Buch »Design Patterns – Elements of Reusable Design« herausbrachte, in dem 23 Entwurfsmuster beschrieben sind. Dieses Autorenquartett ist auch unter dem Spitznamen »Gang of Four« (Viererbande) bekannt. GoF wird gelegentlich auch als Verweis für besagtes Buch verwendet. Anders als Christopher Alexander, der seine Muster vor allem für Laien geschrieben hat, richten sich die GoF-Muster an Entwickler und nicht an Benutzer.
Grundsätzlich ist der objektorientierte Softwareentwurf wesentlich aufwendiger als der prozedurale Entwurf. Der Entwickler muss zahlreiche Festlegungen treffen, die sich nicht direkt aus der Problemstellung ableiten. Um Ihnen dies nochmals zu verdeutlichen, sollten Sie folgende Zusammenstellung betrachten:
- Bildung von Klassen – Hier muss der Entwickler die Daten und die auf sie anzuwendenden Operationen in Klassen abbilden. Im Rahmen der Fragestellung der Objektgranularität ist in erster Linie festzulegen, wie detailliert die Aufteilung der Daten und Methoden auf die verschiedenen Klassen erfolgen soll.
- Vererbungshierarchie – Die gebildeten Klassen verbindet eine zu gestaltende Vererbungshierarchie. Der Entwickler hat zu entscheiden, welche Klassen sinnvollerweise voneinander erben sollen. Darüber hinaus sind ggf. abstrakte Klassen zu bilden. Die Vererbungshierarchie wird beim Softwareentwurf oft auch als »Verwandschaftsbeziehung« bezeichnet.
- Schnittstellengestaltung – Im Rahmen der Schnittstellengestaltung muss festgelegt werden, welche Daten ein Objekt einer Klasse mithilfe welcher Methoden welchen anderen Objekten anderer Klassen zur Verfügung stellen soll.
- Beziehungen zwischen Objekten – Neben Verwandschaftsbeziehungen der Klassen muss es selbstverständlich auch Beziehungen zwischen den Objekten der Klassen geben. Ein Objekt kann beispielsweise ein anderes Objekt erzeugen, besitzen oder eine Referenz auf dieses verwalten. Diese Beziehungen sind ebenso wichtig wie die Vererbungsbeziehungen, da durch sie erst ein guter, objektorientierter Softwareentwurf mit flexibler Struktur entsteht.
Hinweis: Sie sollten darauf achten, die einzelnen Festlegungen nicht in der angegebenen Reihenfolge, sondern vielmehr parallel zueinander festzulegen.
Diesem Mehraufwand, der sich während der Entwicklungsarbeit ergibt, steht ein enormer Nutzen gegenüber, der die Popularität objektorientierter Entwicklung begründet. Objektorientierte Entwürfe sind flexibler. Veränderungen in der Problemstellung sind leicht zu realisieren, das Gleiche gilt für Erweiterungen. Diese Flexibilität beruht hauptsächlich darauf, dass der Entwickler bei seiner Arbeit wiederverwendbare Entwürfe entwickelt hat, die durch diverse Techniken verändert werden können.
Der gedankliche Brückenschlag zu den Entwurfsmustern gelingt, wenn man erkennt, dass verschiedene Softwarebestandteile ähnliche oder sogar gleiche Strukturen enthalten. Wenn man diese Strukturen hinreichend abstrahiert, kann man sie als Muster bezeichnen.
Die Technik der Gang Of Four besteht daher nicht nur im Entwurf von Mustern, sondern in der Art, sie zu beschreiben und somit anwendbar zu machen.
Hinweis: Vollkommen analog hierzu wurden in der Vergangenheit auch bewährte Algorithmen katalogisiert, veröffentlicht und standardisiert. Sortieralgorithmen sind hierfür ein typisches Beispiel.
Objektorientierung für Fortgeschrittene
| Ganzen Artikel lesen... | ![]() |











