Als «design-patterns» getaggte Fragen

Ein Entwurfsmuster ist eine allgemeine wiederverwendbare Lösung für ein häufig auftretendes Problem beim Software-Entwurf.

3
Wer sollte die Navigation in einer MVVM-Anwendung steuern?
Beispiel 1: In meiner MVVM-Anwendung wird eine Ansicht angezeigt (wir verwenden Silverlight für die Zwecke der Diskussion) und ich klicke auf eine Schaltfläche, die mich zu einer neuen Seite führen soll. Beispiel 2: Dieselbe Ansicht verfügt über eine weitere Schaltfläche, die beim Klicken eine Detailansicht in einem untergeordneten Fenster (Dialogfeld) …




3
Was ist das Prinzip des geringsten Erstaunens?
Was wird beim Programmieren als Prinzip des geringsten Erstaunens bezeichnet? In welcher Beziehung steht dieses Konzept zum Entwerfen guter APIs? Gilt dies nur für die objektorientierte Programmierung oder durchdringt es auch andere Programmiertechniken? Hängt dies mit dem Prinzip zusammen, "eine einzige Sache in Ihrer Methode zu tun und es gut …


2
Auswahl des richtigen Entwurfsmusters
Ich habe immer erkannt, wie wichtig es ist, Designmuster zu verwenden. Ich bin gespannt, wie andere Entwickler die am besten geeignete auswählen. Verwenden Sie eine Reihe von Merkmalen (wie ein Flussdiagramm), um sich zu entscheiden? Beispielsweise: Wenn Objekte verwandt sind, wir aber keine konkrete Klasse angeben möchten, ziehen Sie Abstract …


9
Warum benötigen wir eine Builder-Klasse, wenn wir ein Builder-Muster implementieren?
Ich habe viele Implementierungen des Builder-Musters gesehen (hauptsächlich in Java). Alle von ihnen haben eine Entity-Klasse (sagen wir eine PersonKlasse) und eine Builder-Klasse PersonBuilder. Der Builder "stapelt" verschiedene Felder und gibt ein new Personmit den übergebenen Argumenten zurück. Warum benötigen wir explizit eine Builder-Klasse, anstatt alle Builder-Methoden in der PersonKlasse …

1
Ist "StringBuilder" eine Anwendung des Builder-Entwurfsmusters?
Beschränkt sich das Muster "Builder" auf die Adressierung des Anti-Musters "Teleskopkonstruktor", oder kann es auch auf das allgemeinere Problem der komplizierten Erstellung unveränderlicher Objekte angewendet werden? Die StringBuilderKlasse hat das Wort "Builder" im Namen, hat jedoch nichts mit Teleskopkonstruktoren zu tun. Sie hilft uns lediglich dabei, alle Daten zu sammeln, …

10
Senden Sie im Allgemeinen Objekte oder deren Mitgliedsvariablen in Funktionen?
Welches ist allgemein akzeptierte Praxis zwischen diesen beiden Fällen: function insertIntoDatabase(Account account, Otherthing thing) { database.insertMethod(account.getId(), thing.getId(), thing.getSomeValue()); } oder function insertIntoDatabase(long accountId, long thingId, double someValue) { database.insertMethod(accountId, thingId, someValue); } Mit anderen Worten, ist es im Allgemeinen besser, ganze Objekte herumzuleiten oder nur die Felder, die Sie benötigen?

7
Ist es ein Codegeruch, ein Flag in einer Schleife zu setzen, um es später zu verwenden?
Ich habe ein Stück Code, in dem ich eine Map iteriere, bis eine bestimmte Bedingung erfüllt ist, und diese Bedingung später benutze, um weitere Aufgaben zu erledigen. Beispiel: Map<BigInteger, List<String>> map = handler.getMap(); if(map != null && !map.isEmpty()) { for (Map.Entry<BigInteger, List<String>> entry : map.entrySet()) { fillUpList(); if(list.size() > limit) …

9
Gibt es Entwurfsmuster, die nur in dynamisch typisierten Sprachen wie Python möglich sind?
Ich habe eine verwandte Frage gelesen. Gibt es Entwurfsmuster, die in dynamischen Sprachen wie Python nicht erforderlich sind? und erinnerte mich an dieses Zitat auf Wikiquote.org Das Wunderbare an dynamischer Eingabe ist, dass Sie damit alles ausdrücken können, was berechenbar ist. Typsysteme sind normalerweise nicht bestimmbar und beschränken Sie auf …

3
Was sind die Nachteile des ActiveRecord-Musters?
Ich bin gespannt, welche Nachteile die Verwendung des ActiveRecord-Musters für Datenzugriffs- / Geschäftsobjekte hat. Das Einzige, woran ich auf Anhieb denken kann, ist, dass es gegen das Prinzip der einfachen Verantwortung verstößt, aber das AR-Muster ist weit genug verbreitet, dass dieser Grund alleine nicht "gut genug" zu sein scheint, um …


Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.