web-dev-qa-db-fra.com

Classe Java imbriquée privée dans un diagramme UML

J'ai une question concernant UML. J'ai une classe qui contient simplement une classe interne avec le modificateur d'accès privé - inaccessible de nulle part ailleurs ... Normalement, afin de présenter une relation de classe interne, je peux utiliser une relation (+) comme ici (InnerOddIterator): 

enter image description here

(extrait de http://www.uml-diagrams.org/nested-classifier.html )

Je n'ai trouvé nulle part aucune information sur la manière dont on peut clairement souligner que cette classe est privée. Savez-vous si une telle méthode existe? Si oui, je vous serais reconnaissant de me donner un lien ici ou quelque chose?

Juste pour garder les choses claires, un exemple de code:

public class DataStrucure {
     // fields, methods, etc
     private class InnerOddIterator{
          // ... 
     };
}
13
guitar_freak

Du point de vue UML. Si le classificateur (classe également) est imbriqué dans une autre classe, la classe imbriquée joue le rôle d'espace de noms. Dans ce cas, les classes imbriquées sont masquées (privées) dans un espace de noms contextuel. cela signifie que votre diagramme définit implicitement la définition de la classe interne privée.

voici une partie de la définition des classificateurs structurés de la section Superstructure UML:

"Une classe sert d’espace de noms pour différents types de classificateurs définis dans son étendue, y compris les classes. L’imbrication des classificateurs Limite la visibilité du classificateur à l’intérieur de la portée de l’espace de noms de la classe contenante et est utilisée pour raisons de masquage des informations. Les classificateurs imbriqués sont utilisés comme tout autre classificateur de la classe qui les contient. "

6
Vladimir

Tout d’abord: vous avez quelque chose dans votre code qui demande une représentation UML. Mais, à mon humble avis, vous devriez regarder autrement: comment cette idée UML peut-elle être représentée dans le code? (Certains langages de programmation n'offrent même pas de classes privées imbriquées ...).

En ce qui concerne les classes imbriquées privées: je suggère d'utiliser une composition. Il est plus fort que l'association mais pas aussi fort que l'héritage. Et la classe composée ne peut exister sans son compositeur. Quasiment exactement une classe privée imbriquée.

Le dessin est tiré de http://www.uml-diagrams.org/association.html : enter image description here

2
Martin Meeser

enter image description here

0
Red Beard