/design-patterns

Design Patterns for fun & profit

MIT LicenseMIT

🎉 Design Patterns for fun & profit

Inspiriert von Kamran Ahmed´s design-patterns-for-humans der Versuch Design Patterns mit Analogien aus der realen Welt 🌎 so einfach zu erklären, dass sie im Kopf 🤓 bleiben! Dazu gibt es eine Menge Literatur, aber diese bringt es meist nicht auf den Punkt 🎯 und verursacht bei vielen Entwicklern Kopfschmerzen 🤦.

🙌 Intro - Was sind Design Patterns?

Design Patterns bieten Lösungsmuster für immer wiederkehrende Entwurfsaufgaben und sind eigentlich gar nicht so kompliziert, wie ihnen nachgesagt wird. Als Entwickler versuchen wir Aufgabenstellungen zu abstrahieren und eine generelle Sichtweise auf die Dinge zu finden. Lautet unserer Aufgabe einen Apfel 🍏 zu schneiden, so verwenden wir ein Messer 🔪. Sollen wir eine Birne 🍐 zerteilen, so benutzen wir ebenfalls ein Messer 🔪. Grundsätzlich können also mit einem Messer 🔪 Aufgaben gelöst werden, bei denen etwas zerschnitten werden muss. Was hat das nun mit Design Patterns zu tun? Ganz einfach: Design Patterns sind genau das, eine Toolbox mit der wir Standardprobleme lösen können und uns als Entwickler damit durch den Alltag helfen. Haben wir erst einmal gelernt ein Standardproblem zu erkennen und ein Pattern darauf anzuwenden, werden wir bei einem ähnlichen Problem intuitiv zum selben Pattern greifen.

⚠️ Was sind Sie nicht?

Design Patterns sind keine Pakete 📦 oder Bibliotheken 📚, die man in eine Applikation installiert und die magisch alle Probleme lösen. Sie dürfen daher auch nicht als Allheilmittel angesehen werden. Auch kann nicht jede Aufgabe mit einem Pattern gelöst werden und sollte auch nicht erzwungen werden. Jedoch können Sie an der richtigen Stelle eingesetzt viel Zeit 🕐 sparen!

Arten von Design Patterns

In der Literatur 📚 unterscheiden wir zwischen drei verschiedenen Typen von Patterns:

  1. Creational
  2. Structural
  3. Behavioral

Creational Design Patterns

Erzeugungsmuster konzentrieren sich darauf, wie man ein Objekt oder eine Gruppe von Objekten instanziiert.

Structural Design Patterns

Behavioral Design Patterns

Contribution

  • Write Mediator
  • Proofreading
  • Translating examples to
    • PHP
    • Java
    • Javascript
  • Linting markdwon
  • Create Logo for repository
  • Add emoijs :)
  • Add new Patterns (see further)