Frage

Ich habe eine Datenklasse mit den folgenden Methoden:

  • ExecuteUDIQuery (string query)
  • ExecuteSelectQuery (string query)
  • ExecuteSP (string anme, string [,] params)

Ich habe viele Klassen, die die Datenklasse verwenden. Jetzt möchte ich ein Klassendiagramm erstellen, aber ich weiß nicht, welche Art von Beziehung die Klassen mit der Datenklasse haben. Ist es ein Composite? Ist es 1: 1 oder ..

Ein Beispiel für eine Klasse, die die Datenklasse verwendet die Mitarbeiter-Klasse ist. Diese Klasse hat eine Methode Load (), die ein Personal-Objekt mit der Id des Mitarbeiters geladen werden. Dieses Verfahren enthält eine Abfrage, die auf die ExecuteSelectQuery (string query) Methode der Datenklasse übergeben wird.

EDIT: Die Datenklasse ist nicht statisch. Allerdings habe ich meine Zweifel. Ich weiß wirklich nicht, was. Der Punkt ist, das einzige, was sie tut, ist Abfragen und Rücksendung der Ergebnisse ausgeführt wird.

War es hilfreich?

Lösung

Ich würde es ein Verwendung Abhängigkeitsbeziehung vor.

Siehe hier für eine kurze Beschreibung.

Andere Tipps

Ich würde die Benennung Ihrer Klassen abfragen. ein Klassenname sollte in der Regel ein Substantiv im Singular sein. Beispiele;

  • Fenster
  • Person
  • Transaktions

Data ist ein Plural, und in jedem Fall halte ich es für Datenbank sein sollte.

Ebenso für die Personal - wieder einmal einen Plural, ich denke, es MemberOfStaff sein sollte. Es sei denn natürlich ist es eine Liste der Mitarbeiter, in dem Fall, dass ich es so etwas wie Abteilung, Projekt oder Abteilung nennen würde - was auch immer Ihr Problem Domain zeigt

.

Sie werden feststellen, dass mit guten Namen für die Klassen kommen wird überraschend ly schwierig, aber es ist die Mühe wert.

Der Unterschied zwischen Aggregationen, Composites und 1 auf 1 Beziehungen sind etwas vage und etwas willkürlich.

Ich verwende die Aggregation (offene Raute), wenn eine Klasse die andere Klasse besitzt (ist verantwortlich für den gesamten Lebenszyklus.

Ich verwende 1 auf 1-Beziehungen in allen anderen Fällen.

Ist die Klasse von den Klassen instanziiert, die es verwenden, oder sind die Methoden statisch? Wenn sie statisch sind, würde ich dies als unqualifizierte Abhängigkeit (gepunkteten Pfeil aus den Klassen, die die Datenklasse der Datenklasse verwendet) repräsentieren

1-Zusammensetzung (unter der Annahme, dass die Datenklasse Instanz lifcycle an das Objekt gebunden ist, dass es verwendet wird)

Wenn die Klassen, die die Datenklasse verwenden, um ihre eigene private Instanz dieser Klasse schaffen würde dies eine 1 sein

Ich kann nicht umhin, Ihren Gesamtentwurf zu kommentieren, ich würde versuchen, die Load-Methode aus der Personal Klasse zu bewegen, so dass diese Klasse nicht direkt abhängig von der Datenklasse ist.

Im Rahmen der vorhandenen Design würde ich folgendes vorschlagen: Wenn das Personal Klasse eine Instanzvariable der Datenklasse enthält, dann ist es ein Verein. Wenn die Datenklasse instanziiert wird nur die Instanz zu erhalten, ist es nur eine Abhängigkeit von einem bestimmten Typ, wie @toolkit sagt.

Nicht genügend Daten.

Geben Sie uns einige Klassen Umrisse oder so etwas. Von dem, was ich sehen kann, hätte ich nicht wirklich nannte dies eine Datenklasse (es eher wie ein Daten aussieht Accessor ), die, wie es klingt vielleicht sein ein Singleton (viele : 1, Aggregation oder Assoziation), oder wenn instanziert wird eine 1:. 1 Komponente

  

Jetzt möchte ich ein Klassendiagramm erstellen, aber ich weiß nicht, welche Art von Beziehung haben die Klassen mit der Datenklasse.

Wir sind auch nicht - Sie haben beschrieben nur die Datenklasse, und nicht gesagt, wie Mitarbeiter die Daten bekommt es verwendet.

Wenn Mitarbeiter halten mich an einer oder mehr Instanzen der Datenklasse, dann gibt es entweder eine Verbindung zwischen Mitarbeitern und Daten oder Mitarbeiter haben ein Attribut vom Typ Daten (wenn Datenwert Semantik).

Wenn die Dateninstanzen werden durch mehrere Mitarbeiter Instanzen verwiesen, und ihre Lebenszyklen sind abhängig von dann durch Mitarbeiter Instanzen verwiesen wird kann dies als eine Aggregation Beziehung gezeigt werden. Wenn die Dateninstanzen nicht zwischen Personal-Instanzen gemeinsam genutzt werden und ihre Lebenszyklen sind abhängig von verwiesen wird, dann kann dies als eine Zusammensetzung Beziehung gezeigt werden.

Wenn X nicht halten halten, die Daten Instanzen nutzt, dann ein Nutzungsverhältnis angemessen ist.

Dependency und Verwendung sind die beiden schwächsten Art „Anschlüsse“. Sie könnten Klischees, Schlüsselwörter betrachten die Beziehung zu verfeinern. Sie könnten diese instantiate finden, rufen, erstellen, Klischees Arbeit schicken. Ohne weitere Informationen, obwohl die richtige Antwort scheint Nutzung zu sein.

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