Pregunta

Cuando tengo una clase con un miembro de Mapa, no quiero dibujar un objeto de clase / interfaz separado para representar el Mapa en sí, pero prefiero tratar el mapa como si fuera un tipo nativo, más bien que un objeto complejo.

Considere el siguiente ejemplo

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

    private static Map<Searcher, Integer> searcherCache;
}

Me gustaría destacar el hecho de que un IndexManagerImpl contiene (aunque indirectamente) referencias a instancias de Searcher . Sería genial si la representación también pudiera mostrar los parámetros de tipo de searcherCache .

¿Fue útil?

Solución

No estoy de acuerdo con Martin ... ¡MAP es la estructura básica de datos que aprendemos en cualquier curso de graduación de computadora! Existe en la mayoría de los idiomas modernos y es un recurso de diseño importante para los analistas. Un mapa se puede dibujar como una asociación en algunas situaciones, pero se necesitará algún tipo de extensión (estereotipos) O usted puede definir una clase de plantilla. No me gusta el enfoque de plantilla: oculta las asociaciones entre los principales jugadores. El último recurso es AssociationClass, una clase especial de UML utilizada para definir relaciones nxn con atributos, lo que creo que se adapta a su problema, donde el "entero" El campo es una especie de contador de buscadores relacionados con el indexManager. Recuerde también que por código no puede ver el otro lado de la relación, mientras que UML está diseñado para mostrar ambos lados, problemas de navegación, etc.

Otros consejos

En realidad, los objetos de colección indican una asociación de uno a muchos entre dos clases. Por lo tanto, debe tener una clase IndexManagerImpl en su diagrama que tenga una asociación de uno a muchos con una clase de buscador

Los mapas no pueden considerarse colecciones, ya que tienen propiedades diferentes a las colecciones. En realidad, un mapa es múltiple de colección con una relación específica (mapeo). En mi opinión, la representación del mapa depende en gran medida del requisito y podría haber varias representaciones UML del mapa en función de su requisito. Por lo tanto, en una forma simple, se puede representar la relación del mapa, una asociación de uno a muchos al elemento del conjunto de claves y una asociación uno a uno del elemento del conjunto de claves al elemento de valor. Donde elemento clave y elemento de valor son envoltorios de elementos originales, ya que la asociación no está realmente con los elementos originales.

Espero que esto ayude ...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top