Question

Lorsque j'ai une classe avec un membre de la carte, je ne souhaite pas dessiner un objet classe / interface distinct pour représenter la carte elle-même, mais je préférerais traiter la carte comme s'il s'agissait d'un type natif. qu'un objet complexe.

Considérez l'exemple suivant

public class IndexManagerImpl implements IndexManager {
    /* ... */

    private static Map<Searcher, Integer> searcherCache;
}

J'aimerais souligner le fait qu'un IndexManagerImpl contient (bien qu'indirectement) des références à des instances Searcher . Ce serait bien si la représentation pouvait également afficher les paramètres de type de searcherCache .

Était-ce utile?

La solution

Un point de désaccord avec Martin ... MAP est une structure de données de base que nous apprenons dans tous les cours d’informatique! Il existe dans la plupart des langues modernes et constitue une ressource de conception importante pour les analystes. Une carte peut être dessinée en tant qu'association dans certaines situations, mais une sorte d'extension (stéréotypes) sera nécessaire OU vous pouvez définir une classe de modèle. Je n’aime pas l’approche basée sur les modèles - elle cache les associations entre les principaux acteurs. La dernière ressource est AssociationClass, une classe UML spéciale utilisée pour définir nxn relations avec attributs, ce qui, à mon avis, convient à votre problème, où le "entier" champ est une sorte de compteur de chercheurs liés à indexManager. Rappelez-vous également que, par code, vous ne pouvez pas voir l’autre côté de la relation, alors que le langage UML est conçu pour afficher les deux côtés, les problèmes de navigation, etc.

.

Autres conseils

En fait, les objets de collection indiquent une association un-à-plusieurs entre deux classes. Par conséquent, votre diagramme devrait avoir une classe IndexManagerImpl associée à une association un-à-plusieurs avec une classe Searcher

Les cartes ne peuvent pas être considérées comme des collections car elles ont des propriétés différentes de celles des collections. En réalité, une carte est multiple de collection avec une relation spécifique (mappage). À mon avis, la représentation d'une carte dépend fortement de l'exigence et il pourrait y avoir plusieurs représentations de la carte UML en fonction de votre exigence. Ainsi, dans un formulaire simple, une relation peut être représentée, association d'association de un à plusieurs à un élément de jeu de clés et d'une association d'élément de jeu de clés à d'un élément de valeur. Où élément clé et élément de valeur encapsulent les éléments d'origine, car leur association ne correspond pas réellement aux éléments d'origine.

J'espère que cela vous aidera ....

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top