Als «design-patterns» getaggte Fragen

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

6
Was ist die beste Definition für Abhängigkeitsinjektion?
Jedes Mal, wenn mich jemand erreicht und mich bittet, die Abhängigkeitsinjektion konzeptionell zu definieren und die tatsächlichen Vor- und Nachteile der Verwendung von DI im Software-Design zu erläutern. Ich gebe zu, dass ich einige Schwierigkeiten habe, die Konzepte von DI zu erklären. Jedes Mal, wenn ich ihnen die Geschichte über …

4
Ist diese Art, eine Funktion aufzurufen, eine schlechte Praxis?
Ich habe folgenden Code: public void moveCameraTo(Location location){ moveCameraTo(location.getLatitude(), location.getLongitude()); } public void moveCameraTo(double latitude, double longitude){ LatLng latLng = new LatLng(latitude, longitude); moveCameraTo(latLng); } public void moveCameraTo(LatLng latLng){ GoogleMap googleMap = getGoogleMap(); cameraUpdate = CameraUpdateFactory.newLatLngZoom(latLng, INITIAL_MAP_ZOOM_LEVEL); googleMap.moveCamera(cameraUpdate); } Ich denke, dass ich auf diese Weise die Verantwortung eliminiere, zu …


2
Warnsystemarchitektur
Ich möchte ein System erstellen, das Warnmeldungen von verschiedenen Programmen verarbeitet und diese Warnungen per E-Mail an Down-Wind-Verbraucher verarbeiten kann. Dies alles würde über ein internes Netzwerk enthalten sein. Ich denke, ich möchte, dass die grundlegende Architektur ungefähr so ​​aussieht: Das Hauptanliegen, das ich derzeit habe, ist das "Message Handler" …



5
Ist es jemals in Ordnung, den LSP zu verletzen?
Ich verfolge diese Frage , aber ich konzentriere mich von Code auf ein Prinzip. Nach meinem Verständnis des Liskov-Substitutionsprinzips (LSP) müssen alle Methoden in meiner Basisklasse in meiner Unterklasse implementiert werden, und laut dieser Seite, wenn Sie eine Methode in der Basisklasse überschreiben und sie nichts tut oder eine auslöst …


4
Java: Wie implementiere ich einen Step Builder, für den die Reihenfolge der Setter keine Rolle spielt?
Bearbeiten: Ich möchte darauf hinweisen, dass diese Frage ein theoretisches Problem beschreibt, und mir ist bewusst, dass ich Konstruktorargumente für obligatorische Parameter verwenden oder eine Laufzeitausnahme auslösen kann, wenn die API falsch verwendet wird. Ich suche jedoch nach einer Lösung, die keine Konstruktorargumente oder Laufzeitprüfungen erfordert. Stellen Sie sich vor, …

3
Verwenden von Schnittstellen für lose gekoppelten Code
Hintergrund Ich habe ein Projekt, das von der Verwendung eines bestimmten Hardwaregerätetyps abhängt, während es nicht wirklich wichtig ist, wer dieses Hardwaregerät herstellt, solange es das tut, wofür ich es brauche. Abgesehen davon weisen sogar zwei Geräte, die dasselbe tun sollen, Unterschiede auf, wenn sie nicht vom selben Hersteller hergestellt …

5
Generieren von Java-Klassen mit Wertparametern zur Kompilierungszeit
Stellen Sie sich eine Situation vor, in der eine Klasse dasselbe grundlegende Verhalten, dieselben Methoden usw. implementiert, jedoch mehrere unterschiedliche Versionen dieser Klasse für unterschiedliche Verwendungszwecke vorhanden sein können. In meinem speziellen Fall habe ich einen Vektor (einen geometrischen Vektor, keine Liste) und dieser Vektor könnte auf jeden N-dimensionalen euklidischen …

3
Vermeiden Sie Konstruktoren mit vielen Argumenten
Ich habe also eine Fabrik, die Objekte verschiedener Klassen erstellt. Die möglichen Klassen stammen alle von einem abstrakten Vorfahren. Die Factory verfügt über eine Konfigurationsdatei (JSON-Syntax) und entscheidet abhängig von der Konfiguration des Benutzers, welche Klasse erstellt werden soll. Um dies zu erreichen, verwendet die Factory boost :: property_tree für …


4
Reduzierung der Komplexität einer Klasse
Ich habe mir einige Antworten angesehen und bei Google gesucht, konnte aber nichts Hilfreiches finden (dh das hätte keine unangenehmen Nebenwirkungen). Mein abstraktes Problem ist, dass ich ein Objekt habe und eine lange Abfolge von Operationen daran ausführen muss. Ich betrachte es als eine Art Fließband, als würde man ein …


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.