# Patterns sinnvoll anwenden



## Mikesh (10. Jul 2018)

Hey an alle,

ich beschäftige mich aktuell mit dem Modellieren von Klassendiagrammen. Früher oder später stolpert man da ja auch über das Thema Patterns.
Das Problem ist, seit ich von diesen Patterns weiß probiere ich diese immer Krampfhaft einzubauen... 

- Wann kann ich diese denn Sinnvoll einsetzen? 
- Wann besser auf ein Interface programmieren und wann auf eine abstracte Klasse?

Bei den Patterns programmiert man ja meistens auf eine Schnittstelle hin wenn ich das richtig verstanden habe? 


Meine Diagramme haben nie schlechte Ansätze, sind aber auch nicht das Gelbe vom Ei...

Beste Grüße
Mikesh


----------



## httpdigest (10. Jul 2018)

Letztlich erfordert es viel Erfahrung, richtig einschätzen zu können, welche Anforderungen an die Software welche Architektur- und Softwaredesignmuster erfordern.
Meistens sind Designmuster dafür gedacht, ein Prinzip der Softwareentwicklung zu erfüllen, nämlich z.B.:
- Single Responsibility Principle
- Open/closed principle
- Separation of Concerns
- Dependency inversion principle
- und noch mehr, die mir gerade nicht einfallen
Und diese wiederum haben zum Ziel, Software einfacher wartbar/änderbar zu halten.
Wenn du selber immer mit dem Auge/Aspekt der einfachen Änderbarkeit auf deine (zu erstellende) Software schaust, wirst du bald selber die Designmuster (wieder-)entdecken und anwenden, ohne unbedingt von Decorators, Proxies, Command, Factories und dergleichen überhaupt gehört oder diese gelernt zu haben.
Habe einfach beim Erstellen von Software immer ein Auge darauf, welche Änderungen/Erweiterungen die Software über den Lauf der Zeit erfahren wird (und was vorhersehbar ist) und wie du diese Änderungen hättest einfacher gestalten können.


----------



## Mikesh (10. Jul 2018)

Super Danke! Denke da hilft mal wieder nur machen machen machen


----------

