it-swarm-eu.dev

Was ist das am häufigsten verwendete Entwurfsmuster?

Welches Designmuster ist Ihrer Meinung nach am beliebtesten?

24
Tamara Wijsman

Ich bin mir ziemlich sicher, dass "The Big Ball of Mud" am häufigsten vorkommt. Leider für uns alle.
http://en.wikipedia.org/wiki/Big_ball_of_mud

39
Jay

MVC und seine Variationen sind definitiv eines der Top-Designmuster.

25
ysolik

Wenn Sie über Gang-of-Four Designmuster sprechen, muss ich Singleton sagen. Dies ist ein wirklich trauriger Zustand - fast so, als würden Programmierer von der Magie der Designmuster hören und dann einfach nach dem ersten aufhören.

Wenn Sie über Muster im Architekturstil sprechen (mit anderen Worten, Entwurfsmuster, die mehrere Klassen oder Ebenen umfassen), muss ich sagen MVC . Einige andere beliebte sind das Repository Muster und Service-Locator.

21
Jaco Pretorius

Beobachter

Wenn Sie jemals ein Ereignis verwendet haben. Sie haben Observer verwendet.

16
Steven Evers

Dekorateur

Hinzufügen von Funktionen zu einem Objekt zur Laufzeit durch Komposition. Mein persönlicher Favorit.

Edit: Auch Factory ist wahrscheinlich eine der häufigsten.

7
JD Isaacks

Warum hat noch niemand den Iterator erwähnt? Besonders bei all den Karten, aus denen komplexe Datenstrukturen bestehen ... die ich am häufigsten benutze. Oder sprechen wir über Muster, die wir erneut implementieren?

5
ToTheBeach

Strategiemuster

Wenn Sie jemals die Abhängigkeitsinjektion verwendet haben, haben Sie das Strategiemuster verwendet.

5
richeym

Fassade

Denken Sie an eine REST - Schnittstelle wie Twitter oder die SO APIs). Sie verbirgt eine Reihe von Back-End-Dingen, die zumindest im Twitters-Fall schrecklich komplex sein können .

Interessiert es mich, in welchen Tweets von db tables @ apklusk gespeichert sind? Und dass es einen schnellen Cache hat? Und dass @shemnon eine so geringe Leserschaft hat, dass die Tweets immer nicht mehr im Gedächtnis sind? Das ist die Magie der Fassade.

5
shemnon

Ich bin überrascht, dass niemand das Factory-Muster erwähnt hat. Meiner Erfahrung nach ist es eines der am häufigsten verwendeten (und auch am meisten missbrauchten) Muster. Wenn nicht zuerst, wahrscheinlich sollte der Singleton der erste sein, hätte ich gedacht, dass dies eine knappe Sekunde sein würde.

3
AlexC

Zusammen mit meiner vorherigen Antwort werde ich eine neue hinzufügen, die mir heute von meinem Biest eines geerbten Projekts begegnet ist:

Kopieren/Einfügen

Während des Debuggens stieß ich auf einen Code, der zwei ähnlich benannte Funktionen aufrief:

if(x)
   Func1
else
   Func2

Func1 und Func2 hatten die gleichen Parameter. Ich habe sie herausgezogen und unterschieden, und sie sind 100% gleich, außer dass Func1 Func3 und Func2 Func4 aufruft. Ich zog die heraus und unterschied sie. 100% gleich, bis auf 1 Zeile. Ein früherer Programmierer hat sich daher entschlossen, zwei in 50 Zeilen verschachtelte Funktionen zu kopieren und einzufügen, anstatt einen Flag-Parameter zu zwei privaten Funktionen hinzuzufügen, die an genau einer Stelle verwendet werden. Es bringt mich dazu zu weinen.

3
Jay

Wenn ich über Gang-of-Four-Entwurfsmuster spreche, kann ich mir kein Programm vorstellen, das das Observer-Muster nicht verwendet. Wie Jaco bereits erwähnte, wird Singleton auch häufig verwendet, leider ist es zu einem Hammer geworden (jeder Programmierer verwendet es, auch wenn es nicht vollständig benötigt wird).

2
Cristian

Dolmetscher

Selten implementiert, oft verwendet. XPATH-, XSLT-, Regex-, jQuery-Selektoren usw.

2
Jesse Millikan

Spezifikation

Ich glaube nicht, dass es in der GoF aufgeführt ist, aber ich verwende ständig Variationen davon.

1
John Kraft

Ich bin überrascht, dass noch niemand "Builder" gesagt hat. Oder "Adapter". Sie sind wahrscheinlich nicht so exotisch wie einige der anderen, aber ich benutze sie die ganze Zeit. Factory und Abstract Factory sind ebenfalls sehr verbreitet (aber sie sind bereits vergeben).

1
Tim Claason

Das am häufigsten verwendete Entwurfsmuster ist offensichtlich Spaghetti .

1
SK-logic

Auf der Ebene des Software-Designs würde ich argumentieren, dass Composite, Strategie und Vorlage (und in geringerem Maße Factory) am häufigsten verwendet werden. In den letzten zehn Jahren haben wir beim Aufbau unserer Systeme mit einem OO Design) eine Präferenz für Komposition gegenüber Vererbung gesehen. Infolgedessen spielt die Kombination der gerade genannten Muster eine viel wichtigere Rolle als alle anderen IMO.

Architektonisch würde ich mich für MVC im Unternehmen und für Muster einsetzen, die auf Zustandsmaschinen auf der eingebetteten Seite der Dinge basieren.

0
luis.espinal