Als Deutscher Softwareentwickler in der Schweiz

Landstrasse

Drive your own Way

Share now

Nach mehreren gefrusteten Anläufen in Form von Büchern, Internetforen und Tipps von Profis habe ich festgestellt das Entwurfsmuster (DesignPattern) durchaus Sinn machen ;-) Genau erklären kann es aber dann doch keiner so richtig.
Entwurfsmuster sind ist auch komplett unabhängig von der Art der Programmiersprache, was die Sache (meiner bescheidenen Meinung nach) nicht gerade einfacher macht.

Hier nun der Versuch einer Erklärung von Entwurfsmuster :

Stellen wir uns einmal vor wir wären ein Handwerker der einen Zimmerboden verlegen will.
Hierbei ist es völlig gleich, ob mit verlegen nun das verlegen des Bodens mit Teppich, Fliesen, Holz, Kork, Granit oder einfach nur mit Farbe bestreichen gemeint ist.
In jedem Fall könnten wir ein von mir frei erfundenes Entwurfsmuster anwenden (*hm*, vielleicht gibt es das sogar schon?), nämlich das "sperr Dich nicht ein"-Muster.

Das Entwurfsmuster "sperr Dich nicht ein" bedeutet folgendes:
Wenn man einen beliebigen Raum mit beliebigem Material verlegt, sollte man immer an der Ecke des Raumes mit dem verlegen beginnen, die gegenüber einer Zimmertür liegt. Denn wenn man fertig ist mit dem Verlegen sollte man den Raum ja auch wieder verlassen können, ohne über den frisch gestrichenen Fussboden laufen zu müssen. Logisch, oder?
OK, beim Teppichboden könnte man unter Umständen ‚drüber laufen, wenn er nicht gerade weiss ist und man zuerst die Schuhe auszieht.

Jetzt werden ein paar Jungs wieder sagten: "Mann, das ist ja wohl loooogisch?!".
Nein, das ist es eben nicht, sondern das ich Fachwissen das man sich entweder unter Handwerkern weiter erzählt bekommt, oder man hat sich selbst schon mind. einmal in diese blöde Situation gebracht und daraus gelernt.
Beim verlegen eines Fussbodens könnte man auch durch etwas Nachdenken darauf kommen, weil man den Raum vor sich sieht und sich das ganze verlegen etwas vom Ablauf her vorstellen kann.

Wenn es aber um komplexe technische Zusammenhänge geht, dann wird das ziemlich schwierig bzw. sehr anstrengend, weil man sich eben nicht so einfach komplexe Vorgänge vorstellen kann.

In der Regel ist es ja auch so, dass man erst einmal das Problem an sich verstehen muss um ein Entwurfsmuster anwenden zu können. Also in unserem Fall das verlegen eines Fussbodens. Das Problem oder die Problematik einer komplexen Geschäftslogik erst einmal zu verstehen ist schon recht schwierig und erst wenn man das verstanden hat kann man überlegen ob es für diesen Fall evtl. ein Entwurfsmuster gibt, nachdem man vorgehen kann, um sich eben "nicht aus bzw. einzusperren".

Wenn man in einem Team arbeitet, hat ein Entwurfsmuster noch weitere Vorteile:
1. kennt ein Kollege bereits das Problem und evtl. auch ein dazu passendes Entwurfsmuster, dann kann man das Problem wesentlich besser verstehen, weil man ja das unter Umständen das Entwurfsmuster dazu bereits kennt oder bekannt gibt
2. Wenn alle im Team ein paar Entwurfsmuster kennen, dann spricht man sie gleiche Sprache und kann evtl. weitere Lösungsvorschläge viel besser besprechen

Auch ist es oft so das man nicht nur ein Entwurfsmuster anwenden kann, sondern gleich ein paar Entwurfsmuster auf einmal, je nach Problemstellung.

Abschliessend ein paar Bücherlinks und einen auf Wikipedia über Entwurfsmuster :
Patterns kompakt. Entwurfsmuster für effektive Software-Entwicklung.
Entwurfsmuster von Kopf bis Fuß
Design Patterns. Elements of Reusable Object-Oriented Software.

Eines darf hierbei auch nicht fehlen! Anti Patterns

Schreibe einen Kommentar

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

Related Posts

Progressive House

https://www.beatport.com/my-beatport?genres=15

Musikproduktion & DJ Software

Alle Tipps setzen einen iMac oder Mac Book voraus (und auf Wunsch zusätzlich ein iPad): Einsteiger Profi DJay Pro DJ Softwware für Mac, iPad und

X TRA TEC

War wieder eine mega Party im xtra ! https://xtratec.ch/

Get in touch

872 Arch Ave.
Chaska, Palo Alto, CA 55318
hello@example.com
ph: +1.123.434.965

Business inquiries

hello@example.com
ph: +1.321.989.645