Als «design-patterns» getaggte Fragen

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

5
Kann eine Pimpl-Variante ohne Leistungseinbußen implementiert werden?
Eines der Probleme von pimpl ist die Leistungsbeeinträchtigung bei der Verwendung (zusätzliche Speicherzuweisung, nicht zusammenhängende Datenelemente, zusätzliche Indirektionen usw.). Ich möchte eine Variation der Pimpl-Sprache vorschlagen, mit der diese Leistungseinbußen vermieden werden, wenn nicht alle Vorteile von Pimpl genutzt werden. Die Idee ist, alle privaten Datenelemente in der Klasse selbst …

1
Wie soll ich mit inkompatiblen Konfigurationen mit dem Builder-Muster umgehen?
Dies wird durch diese Antwort auf eine separate Frage motiviert . Das Builder-Muster wird verwendet, um die komplexe Initialisierung zu vereinfachen, insbesondere mit optionalen Initialisierungsparametern. Ich weiß jedoch nicht, wie ich mich gegenseitig ausschließende Konfigurationen richtig verwalten soll. Hier ist eine ImageKlasse. Imagekann aus einer Datei oder aus einer Größe …




2
Caching Factory Design
Ich habe eine Fabrik class XFactory, die Objekte von erstellt class X. Instanzen von Xsind sehr groß, daher besteht der Hauptzweck der Factory darin, sie so transparent wie möglich für den Clientcode zwischenzuspeichern. Objekte von class Xsind unveränderlich, daher erscheint der folgende Code sinnvoll: # module xfactory.py import x class …


6
Wann soll abstrakter Code geschrieben und wann genauer?
Ich arbeite an einem kleinen Tool als Spielzeugprojekt, um den Unterschied zwischen zwei Verzeichnissen aufzuzeigen und zu zeigen, welche Dateien / Verzeichnisse hinzugefügt, entfernt, geändert usw. wurden. Ich habe versucht, diese Änderungen einfach als 'ChangeItem'-Objekte darzustellen, ohne zu unterscheiden, ob es sich um eine Datei oder ein Verzeichnis handelt. Dies …

5
Entwerfen einer funktionsbasierten RESTful-API
Bitte führen Sie einen Streit zwischen mir und einem Freund. Wir entwickeln derzeit eine Produkt-API. Unsere Produkteinheit sieht so aus { "Id": "", "ProductName": "", "StockQuantity": 0 } Produktverkäufe werden von Dritten abgewickelt und sind verpflichtet, uns die gekaufte Menge mitzuteilen, damit das StockQuantityFeld verkleinert werden kann. Mein Ansatz: PUT …



9
Entwurfsmuster für voneinander abhängige Werte
Zusammenfassung: Gibt es ein gutes Entwurfsmuster, um Doppelarbeit von Informationen zwischen eng voneinander abhängigen Werten zu reduzieren? In meiner Arbeit ist es ziemlich üblich, eine Beziehung zwischen Mengen zu haben, so dass Sie eine der Mengen ableiten können, wenn Sie die anderen kennen. Ein Beispiel könnte das ideale Gasgesetz sein …

8
Verstoß gegen das Prinzip der Einzelverantwortung?
Ich habe kürzlich eine Debatte mit einem anderen Entwickler über die folgende Klasse geführt: public class GroupBillingPayment { public void Save(IGroupBillingPayment model) { if (model == null || UserInfo.UserID == 0) { throw new Exception("GroupBillingPayment object or Current User Id is NULL , Please Contact Administrator."); } Data.GroupBillingPayment groupBillingPayment = …

4
Codestruktur für mehrere Märkte? (unterschiedliche Geschäftsregeln für jeden Staat in den USA)
Wir entwickeln eine App, die für jeden Geschäftsmarkt (Länder und Staaten), in dem sie erhältlich ist, leicht unterschiedliche Anforderungen hat. Es scheint eine häufige Situation zu sein, aber ich kann anscheinend keinen guten Artikel über die Strukturierung von Code / Modulen für dieses Szenario finden. Es ist eine C # …

3
Warum wird das Builder-Muster oft so implementiert?
Oft sehe ich die Implementierung des Builder-Musters (in Java) folgendermaßen: public class Foo { private Foo(FooBuilder builder) { // get alle the parameters from the builder and apply them to this instance } public static class FooBuilder { // ... public Foo build() { return new Foo(this); // <- this …

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.