Frage

Ich habe eine extrem harte Zeit figurering, wie Klassen mit ihnen kommunizieren muss. In einem aktuellen Projekt, das ich mache, haben viele Klassen so tief verwurzelte worden, dass ich Singletons und statische Felder zu machen begonnen zu umgehen (was ich bekomme dies eine schlechte Idee ist).

Es ist schwer, mein Problem zu äußern und seine wie andere Programmierer nicht über dieses Problem. Hier ist ein Bild eines Teils des Programms: Klassendiagramm

  • EX1. Wenn ich ein Ziel-Objekt erstellen, braucht es Informationen von Infopanel. Wie man das tun, ohne ein statisches Getter in Infopanel zu machen?

  • ex2. DestinationRouting wird in everybranch verwendet. Muss ich es wirklich in Starter machen müssen und es dann in allen Zweigen überliefern?

Nicht sicher, ob dies Sinn macht jemand :) Es ist ein Problem, das in jedem Projekt wird reacurring.

War es hilfreich?

Lösung

Es gibt einfach zu wenig Informationen hier. Zum Beispiel bin ich nicht einmal sicher, ob MapPanel und InfoPanel sollten die Art und Weise sein, sie sind. Ich würde versucht sein, dem Decorator-Muster für einen Versuch zu geben, was es wert ist. Ich weiß nicht, warum ein Zuhörer ein Kind eines Panel entweder ist. Wir müssen wissen, was diese Objekte sind und welches System das ist.

Andere Tipps

Nach dem in Ihrem Klassendiagramm suchen, ich glaube, Sie einen Verfahren Geist zu einem OO Problem gesetzt anwenden. Ihre Singletons erscheinen alle das Verhalten enthalten, die auf den Datensatz in Ihrem Domain-Modell arbeiten und die Aufzeichnungen haben sehr wenig Verhalten.

Um ein besseres Verständnis für Ihr Objektmodell zu bekommen, würde ich versuchen und kategorisieren, die die Beziehungen (Linien) in Ihrem Klassendiagramm als eine der „is-a“, „has-a“, etc., so dass Sie sehen besser, was Sie haben.

Ziel muss einige Informationen von Infopanel, aber wahrscheinlich nicht alle Informationen. Ist es möglich, nur die benötigten Informationen zu Ziel statt Infopanel passieren?

Welcher Zustand wird in der DestinationRouting Klasse eingefangen, die es zwingt ein Singleton zu sein? Hat diese Informationen gehören anderswo?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top