Welche praktischen Erfahrungen haben Sie mit der Verwendung von Software Design Patterns? [geschlossen]

8

Wikipedia hat eine gute Zusammenfassung über die verschiedenen Designmuster. Welche hast du in der Praxis am meisten benutzt und was sind deine Erfahrungen? Wann sollte man nach einem Muster suchen und wann nicht?

Bearbeiten: Ein cooler C # -basierter Link mit praktischen DP-Beispielen (tnn zu Mladen Mihajlovic

    
Yordan Georgiev 23.05.2017, 10:30
quelle

11 Antworten

15

Sie sollten auf jeden Fall "Pattern Driven Design" vermeiden, bei dem Sie versuchen, so viele Muster wie möglich in Ihre Klassen zu stopfen. Ich finde es nützlich, die wichtigsten Entwurfsmuster zu kennen und wenn ich auf ein neues Designproblem stoße, stelle ich mir die Frage "Kenne ich ein Muster, das hier nützlich sein kann?". Wenn ich das tue, versuche ich es zu benutzen; wenn nicht, dann nicht (manchmal schaue ich auch nach ihnen, denn ich kenne nicht jedes Muster auswendig).

Entwurfsmuster können Ihnen wirklich dabei helfen, Ihren Code zu verbessern, aber falsch verwendet werden, sie können auch wirklich Dinge vermasseln.

    
B.E. 23.04.2009, 06:16
quelle
6

Re dass Leute, die keine Erfahrung mit allen Mustern haben, in der Lage sein werden zu verstehen, was dein Code macht

Ich denke, es ist umgekehrt. Patterns ist eine gute Möglichkeit, ein Design zu kommunizieren. Wenn die Leute also Faktor, Beobachter, Dekorateure nicht verstehen, dann haben sie ein Problem ...

Alternativtext http://headfirstlabs.com/Images/brain2.png Check out " Head First: Design Patterns " sie haben auch einige Foren zum Buch und eine Design-Meditation .

Gute Seite für Muster Ссылка

    
salgo60 23.04.2009 07:10
quelle
4

Ich habe die Erfahrung gemacht, dass die meisten Programmierer, die über DP sprechen, kein bisschen von den Kräften etc. verstehen. Um Yegge in seinem großen Singleton Considered Stupid zu zitieren:

  

Wenn sie Anspruch auf Design Patterns haben und sie nur das Singleton-Muster benennen können, dann arbeiten sie NUR bei einem anderen Unternehmen.

    
robi-y 23.04.2009 06:50
quelle
4

Ich denke, die beste Regel, der man folgen sollte, ist KISS. Patterns sind nützlich, um Ihre Software wartbarer und verständlicher zu machen, aber letztendlich KISS, um sicherzustellen, dass Leute, die keine Erfahrung mit allen Patterns haben, in der Lage sind, zu verstehen, was Ihr Code tut.

    
JH. 23.04.2009 07:03
quelle
2

Nun, das eine Muster, das ich für die meisten meiner Projekte verwende, ist MVC. Es hatte sich als perfekt für meine Art der Programmierung erwiesen. Ich habe auch eine Kombination der meisten der verfügbaren Muster verwendet, wenn man bedenkt, wie viel ich tatsächlich programmiere. Vergessen Sie nicht, dass Muster "Lösungen für gemeinsame Probleme" sind, die wir beim Programmieren erfahren.

Hier ist ein guter Link zum Lesen von Mustern mit Implementierungen (in C # und VB.NET).

    
Mladen Mihajlovic 23.04.2009 06:14
quelle
2

Wie Benedikt bereits geschrieben hat, verwenden Sie als Faustregel nur Muster, um Probleme zu lösen, ändern Sie Ihr Problem nicht, um es an ein Muster anzupassen. ; -)

Ich benutze Fabriken und Bauarbeiter viel. Kommando-, Beobachter- und Besuchermuster auf der Verhaltensseite.

Sie passen natürlich zu den meisten Problemen, denen ich in meinem täglichen Entwicklungsleben begegne.

    
Patrick Cornelissen 23.04.2009 06:54
quelle
2

Schöpfungsmuster sind einfach und wir können leicht feststellen, wann wir ein bestimmtes Muster verwenden. Ich habe alle 5 Muster in meinen Projekten je nach Anforderung verwendet.

Strategie Muster sollte verwendet werden, wenn Sie verschiedene Implementierungen für ein bestimmtes Feature haben, die zur Laufzeit sehr einfach geändert werden können - z. B. Ändern der Konfiguration, um vorhandenes Verhalten zu ändern und zu anderer Implementierung zu wechseln. p>

Decorator Muster ist auch einfach - Sie können Verhalten zur Laufzeit hinzufügen, ohne vorhandene Klasse zu berühren und neue Klassen hinzuzufügen

Kette der Verantwortung, Zustand, Adapter Muster sind auch sehr nützlich in Echtzeit.

Brücke, Proxy & amp; Fassade - Ich habe in meinen Projekten sehr wenige Szenarien gesehen.

Unter den verbleibenden Mustern: Memento, Besucher, Mediator - Ich habe bisher keine Anwendungsfälle gefunden und mag sie nicht im Vergleich zu anderen Mustern

    
Ravindra babu 24.10.2016 14:35
quelle
1

Fabriken und Dekoratoren werden sowohl in Java als auch in .Net Frameworks häufig verwendet.

    
Brian Rasmussen 23.04.2009 06:19
quelle
1

Wir versuchen herauszufinden, wo wohlbekannte Muster angewendet werden können. Normalerweise schreiben wir keinen Code für sie, wir nehmen es einfach von verschiedenen Orten. Tipischerweise verwenden wir bestehenden Code für Singleton, Proxy, Status, etc.

Schauen Sie sich Gammas Buch "Design Pattern" an

Der "Java Camp Code" enthält auch Code für allgemeine Muster ( Ссылка )

auch die Wikipedia hat Code für Muster

Luis

    
Luixv 23.04.2009 07:13
quelle
1

Beantworten Sie den Titel: "Welche praktischen Erfahrungen ...?", ich würde sagen, dass das Ausprobieren von DPs mir gezeigt hat, wie OO wirklich funktioniert, besonders die Leistungsfähigkeit von Interfaces.

Beantworten der restlichen Beiträge:

Meine Lieblingsmuster sind:

  • MVP (Passive View zum Testen)
  • Strategie - in Kombination mit TDD,
  • Template-Methode - zum Extrahieren gemeinsamen Verhaltens in Superklassen.

Nachdem ich eine Vielzahl von Mustern verwendet habe, merke ich, dass ich sie "spontan" mehr und mehr als Antworten auf einige Probleme sehe.

Ich stimme mit anderen überein, dass Sie keine Muster verwenden sollten, um Muster zu verwenden - Sie bleiben stecken und versuchen, das Problem so zu gestalten, dass es zu der Lösung passt, was oft problematisch ist.

    
Lennaert 23.04.2009 07:35
quelle
1

Aus meiner Erfahrung sind einige Entwurfsmuster für irgendeine Art von Programmierung besser geeignet als für andere. Beispielsweise wird bei der Programmierung von Spielen das Muster der Zustandsmaschine verwendet. MVC und die Template Design Patterns sind auch sehr nützlich.

    
sayjava 23.04.2009 07:50
quelle

Tags und Links