Ich habe vor kurzem angefangen, mich mit Designmustern zu befassen, und eine Sache, die ich codiere, würde perfekt zum Strategiemuster passen, abgesehen von einem kleinen Unterschied. Im Wesentlichen benötigen einige (aber nicht alle) meiner Algorithmen einen oder zwei zusätzliche Parameter, die an sie übergeben werden. Also muss ich entweder Übergeben …
Das Open-Closed-Prinzip (OCP) besagt, dass ein Objekt zur Erweiterung geöffnet, zur Änderung jedoch geschlossen sein sollte. Ich glaube, ich verstehe es und verwende es in Verbindung mit SRP, um Klassen zu erstellen, die nur eines tun. Und ich versuche, viele kleine Methoden zu erstellen, die es ermöglichen, alle Verhaltenssteuerelemente in …
Was sind die Vor- und Nachteile statischer Objekterstellungsmethoden gegenüber Konstruktoren? class Foo { private Foo(object arg) { } public static Foo Create(object arg) { if (!ValidateParam(arg)) { return null; } return new Foo(arg); } } Wenige, an die ich denken kann: Vorteile: Geben Sie null zurück, anstatt eine Ausnahme auszulösen …
Wir sind von einem Drittanbieter abhängig, der eine gigantische Schnittstelle bereitstellt, für die wir nur drei Methoden benötigen. Außerdem ändert sich die Benutzeroberfläche häufig ... Ich habe beschlossen, die Schnittstelle in eine Klasse in unserem Projekt einzuschließen und nur die Methoden bereitzustellen, die wir benötigen. Ich bin mir jedoch nicht …
Szenario: Stapel: Java, Frühling, Ruhezustand. Modell: Client-Server-Anwendung. Muster: Model-View-Controller (MVC). Die Service Layer-Klassen weisen drei Verhaltensweisen auf: Einige Dienste haben die Geschäftsregel innerhalb der Methoden und delegieren die Persistenz an die Anwendung. Mögen: EntityManager.save (Entität); Einige Dienste rufen einfach eine Datenbankfunktion auf (Übergabe von Parametern). CallableStatement cls = con.prepareCall ("{call …
In vielen Artikeln im gesamten Web scheinen die Begriffe Inversion of Control und Dependency Inversion Principle verwechselt und als Synonyme verwendet zu werden (weitere Verwirrung wird durch die Tools "DI-Container" und "IoC-Container" verstärkt). Ein Wikipedia-Artikel macht einen guten Job und versucht zu erklären, dass IoC nicht dasselbe ist wie DI: …
Wie implementieren Sie bei der Planung der Architektur für eine mittelgroße MVC-Webanwendung die Ebenen, die so entkoppelt wie möglich und einfach zu testen sind? Nehmen wir an, ich verwende zuerst Code als Datenzugriff. Ich habe Probleme damit, was "Geschäftslogik" zu definieren ist und wie es mit der Datenschicht interagieren soll. …
Welche praktischen Techniken werden verwendet, um zu überprüfen, ob eine Klasse gegen das Prinzip der Einzelverantwortung verstößt? Ich weiß, dass eine Klasse nur einen Grund haben sollte, sich zu ändern, aber diesem Satz fehlt ein praktischer Weg, dies wirklich umzusetzen. Der einzige Weg , ich fand , ist , den …
Viele Tutorials zu DDD, die ich studiert habe, befassen sich hauptsächlich mit Theorie. Sie alle haben rudimentäre Codebeispiele (Pluralsight und ähnliches). Im Internet gibt es auch Versuche einiger Leute, Tutorials zu DDD mit EF zu erstellen. Wenn Sie sie nur kurz studieren, bemerken Sie schnell, dass sie sich stark voneinander …
Erstens ist mir bewusst, dass diese Frage mit dem Thema Spieleentwicklung zusammenhängt, aber ich habe mich entschlossen, sie hier zu stellen, da es sich wirklich um ein allgemeineres Problem der Softwareentwicklung handelt. Im letzten Monat habe ich viel über Entity-Component-Systeme gelesen und bin jetzt mit dem Konzept ziemlich vertraut. Es …
Ich arbeite derzeit als Solo-Entwickler an meinem aktuellen Projekt. Ich habe das Projekt von einem anderen Entwickler geerbt, der das Unternehmen inzwischen verlassen hat. Es ist eine Webanwendung im Model-View-Controller-Stil in C #. Es verwendet Entity Framework für die objektrelationale Zuordnung. Und es gibt zwei verschiedene Klassen für die Typen …
Ich arbeite an einer Anwendung, deren Modul die folgenden Finanzoperationen nacheinander ausführt: Wenn ein Benutzer die Überweisung eines bestimmten Betrags auf sein Bankkonto anfordert: Überprüfen Sie, ob jetzt eine Transaktion stattfinden kann. (Transaktion kann nur während eines bestimmten Zeitraums durchgeführt werden) Überprüfen Sie, ob der Benutzer die Abhebung eines Mindestbetrags …
Einführung Ich implementiere eine abstrakte Java-Klasse eines Verarbeitungsframeworks *. Durch die Implementierung der Funktion executekann ich geschäftslogische Funktionen hinzufügen. Ich möchte die Protokollierung zu Beginn und am Ende jeder Implementierung jeder meiner Ausführungsfunktionen hinzufügen. Auch zwischen einigen Protokollierungen, wenn bestimmte Dinge erledigt werden. Ich möchte dies jedoch einheitlich gestalten. Mein …
Ich lese Coders at Work und Brendan Eich zitiert einen Artikel von Norvig aus seiner Zeit bei Harlequin, "darüber, wie Designmuster wirklich nur Fehler in Ihrer Programmiersprache sind". Kann jemand den Link zu diesem Artikel bereitstellen?
Zum Beispiel: var duckBehaviors = new Duckbehavior(); duckBehaviors.quackBehavior = new Quack(); duckBehaviors.flyBehavior = new FlyWithWings(); Duck mallardDuck = new Duck(DuckTypes.MallardDuck, duckBehaviors) Da die Duck-Klasse alle Verhaltensweisen enthält (abstrakt), scheint das Erstellen einer neuen Klasse MallardDuck(die erweitert wird Duck) nicht erforderlich zu sein. Referenz: Head First Design Pattern, Kapitel 1.
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.