Patterns

Überblick

Motivation

Es soll vorkommen, dass man in der Softwareentwicklung Probleme lösen muss. Und es soll vorkommen, dass man ein Problem, dass man schonmal gelöst hatte, nochmal lösen muss. Und es soll vorkommen, dass sich manche Probleme ähneln. Typischerweise versucht man, wenn man ein Problem zum zweiten Mal lösen muss, schneller zu sein als beim ersten Mal. Das nennt sich „lernen“.

Aber es gibt noch eine weitere Möglichkeit, beim zweitem Mal Arbeit zu sparen: Wiederverwendung. Besteht die Lösung eines Problems in einem Stück Code, dann kann man diesen verallgemeinern (parametrisieren) und beim zweiten Mal einfach hernehmen und benutzen. Das Ergebnis ist dann eine Prozedur, eine Klasse oder allgemein: ein Modul.

Aber auch, wenn die Lösung nicht in einem Stück Code besteht, sondern in einer bestimmten Herangehensweise, einer bestimmten Strukturierung oder Idee, so kann man sie wiederverwenden. Das Gegenstück zum Modul, dem wiederverwendeten Code, ist das Pattern bzw. Muster, sozusagen die wiederverwendete Idee.

Ursprünge

Die Idee der Patterns stammt ursprünglich aus der Architektur. Der amerikanische Architekt Christopher Alexander zeigte 1977 in seinem Buch „A Pattern Language. Towns, Buildings, Construction“ wie man Räumlichkeiten, Gebäude und ganze Städte mit Hilfe von Patterns entwerfen kann. Seine Ideen haben sich in der Architektur aber nicht wirklich durchgesetzt. Zehn Jahre später übertrugen jedoch Kent Beck und Ward Cunningham die Idee auf die Softwareentwicklung. In den 90er Jahren wurde die Idee der Patterns immer bekannter und immer mehr Patterns wurden entdeckt und dokumentiert. Bahnbrechend war dafür wohl das Buch „Design Patterns. Elements of Reusable Object-Oriented Software“, das so genannte „GoF-Book“. Mittlerweile gehören Patterns in die Werkzeugkiste eines jeden Softwareentwicklers.

Kapitel: | 1 | 2 | 3 | 4 | 5 | 6 | Weiter |

3 Kommentare


  1. > _In_ meinen Augen vermischen diese Definitionen jedoch oft

    Typo.


  2. > Außerdem muss bei Änderung der GUI die _ChatClient_-Klasse angepasst werden

    Typo.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert