2017-08-07 1 views
1

Cette question est une modélisation pure conceptionmodèle diagramme de classes UML: mêmes classes dans différents packages

J'ai deux paquets et il y a différentes classes avec le même nom devrait intégrés à ces paquets

Quelle est la bonne solution de conception si j'ai même classes dans différents paquets

j'ai lu des solutions différentes en fonction de codage telles que:

1 emploi « importation » dépendance entre les paquets pour éviter les classes de redondance 2 créer une instance de classes dans d'autres package, et permettent ainsi d'avoir les mêmes classes de nom dans différents paquets
3 qualifier complètement l'un des noms de classe

Voulez-vous suggérer ce qui est la meilleure solution ou me dire d'autres bonnes solutions S'il vous plaît?

Répondre

3

Vous êtes autorisé à utiliser le même nom pour les classes quand elles sont différentes. Un package est un espace de noms, de sorte que les noms complets de ces classes seront différents. Maintenant, comment vous accédez à la classe dépend de quel paquet êtes-vous en ce moment. Chaque fois que vous êtes en dehors du paquet contenant la classe (soit directement par l'importation/accès), vous devez utiliser des noms entièrement qualifiés pour éviter toute ambiguïté.

Si les classes sont en fait la même chose, vous pouvez: - mettre le forfait où il convient plus et accéder simplement de l'autre ensemble (approche standard possible pour toutes les classes publiques) - le mettre dans un - placez-le dans un autre paquet (par exemple Utils) et importez-le dans les deux paquetages (si cela convient mieux pour une raison quelconque) et importez-le dans l'autre paquet (via l'importation d'élément ou de paquet).

Le choix dépendra de la situation spécifique.

2

S'il s'agit de la même classe, vous devez la définir dans un paquet et la "réutiliser" dans l'autre.

Un outil de modélisation UML complet devrait être capable de glisser-déposer une classe existante dans un autre paquet.

L'outil devrait pouvoir indiquer que vous utilisez une classe d'un autre paquet.

enter image description here