2017-08-07 4 views
1

Dieses Problem ist eine reine Design-ModellierungUML-Klassendiagramm Modell: gleiche Klassen in verschiedenen Paketen

Ich habe zwei Pakete und es gibt verschiedene Klassen mit demselben Namen zu diesen Paketen eingebettet sollte

was die gute Design-Lösung ist wenn ich dieselben Klassen in verschiedenen Paketen

ich verschiedene Lösungen gelesen haben basierend auf Codierung wie:

1-use „Import“ Abhängigkeit zwischen Paketen Redundanz Klassen zu vermeiden Instanz von Klassen in anderem Paket 2 erstellen und somit ermöglichen gleiche Namen Klassen in verschiedenen Paketen
3-voll einen des Namen hat

Klasse qualifizieren

würden Sie vorschlagen, die beste Lösung oder sagen Sie mir andere gute Lösungen Bitte?

Antwort

3

Sie dürfen den gleichen Namen für Klassen verwenden, wenn es sich um verschiedene Pakete handelt. Ein Paket ist ein Namespace, sodass die vollständig qualifizierten Namen dieser Klassen unterschiedlich sind. Wie Sie auf die Klasse zugreifen, hängt davon ab, in welchem ​​Paket Sie sich gerade befinden. Wenn Sie sich außerhalb des Pakets befinden, das die Klasse enthält (entweder direkt über Import/Zugriff), müssen Sie voll qualifizierte Namen verwenden, um Mehrdeutigkeiten zu vermeiden.

Wenn die Klassen sind eigentlich die gleichen sind, können Sie: - es das Paket setzen, wo es passt und es einfach Zugang vom anderen Paket (Standardansatz möglich für alle öffentlichen Klassen) - setze sie in einem der Pakete (wenn es dort aus irgendeinem Grund besser passt) und importieren Sie es in das andere Paket (durch Element oder Paketimport) - fügen Sie es in zusätzliches Paket (zB Utils) und importieren Sie es in beide Pakete.

Die Auswahl hängt von der jeweiligen Situation ab.

2

Wenn es die gleiche Klasse ist, sollten Sie es in einem Paket definieren und es in dem anderen "wiederverwenden".

Ein vollständiges UML-Modellierungswerkzeug sollte in der Lage sein, eine vorhandene Klasse in ein anderes Paket zu ziehen.

Das Tool sollte anzeigen können, dass Sie eine Klasse aus einem anderen Paket verwenden.

enter image description here

Verwandte Themen