¿Cómo puedo indicar que un método devolverá una colección de objetos en UML? ¿Hay una mejor manera de explicar la relación que tener una clase de colección como un tipo de devolución?UML - Método de objeto Devuelve una colección
Respuesta
Puede considerar el uso de una "asociación". Hay tres tipos básicos de asociación: composición, agregación y asociación "normal". Cada uno de ellos expresa una dependencia existencial diferente del todo a la parte y viceversa.
Generalmente las asociaciones se expresan conectando dos clases por una línea. La composición y la agregación tienen un símbolo de diamante en el lado del compuesto/agregado. El compuesto/agregado consiste en una o más partes. (Véase la wiki-article)
Ejemplo:
Immagine tiene dos clases: Biblioteca, Libro. Podemos decir que la Biblioteca es el todo y Reserva la parte. Podríamos anotarlo así (en ASCII, por favor google para diagramas reales).
Biblioteca (agregado) <> --- libro (parte)
Si quieres expresar estas relaciones de asociación será su amigo.
EDIT:
Como dije en el comentario, no creo que hay una notación especial para las colecciones devueltos. Sin embargo, tienes razón, devolver una Colección es un poco específico del idioma. Pero puede considerar devolver una matriz (String[]
), que es una forma más general de representar un conjunto de valores y debería ser más independiente del lenguaje que una Colección. Depende entonces del programador cómo lo implementa. Puede usar un Collection
, un vector C++ STL ... el punto es: devolver un conjunto de valores.
Correcto, pero ¿cómo puedo indicar que un método está devolviendo esa asociación? – derekerdmann
Por lo general, un método define el __behaviour__ de una clase. Por lo tanto, no hay forma de expresar que el método devuelve una colección utilizando un diagrama de clases (excepto para indicar su valor de retorno). – Simon
Entonces, ¿solo diría que el método devuelve Collection
Hmm, es cierto, que en los diagramas de clase UML no hay una forma explícita de expresar los tipos de colección. Leí un libro donde criticaron a UML por eso, pero mencionaron que en algunas versiones más eficientes de UML había tipos de colecciones. Otra cosa es el Object Constraint Language (OCL), que está integrado con UML (como el estándar OMG) y tiene sus propios tipos de colección con buenas operaciones.
Estoy llegando a esto un poco tarde, ya que estaba buscando una respuesta a una pregunta similar. Estoy escribiendo esto en caso de que alguien más esté buscando una respuesta similar.
¿Desea indicar que un método devuelve una colección de un tipo específico? Si es así, para un método, debería poder establecer el tipo del parámetro de retorno y la multiplicidad del parámetro de retorno en 0 .. * o 1 .. *. Esto indicaría que el método devuelve el tipo especificado y que tiene la multiplicidad que indique.
E.g. usando la biblioteca <> --- Ejemplo de libro, supongamos que hay un método en la biblioteca llamado GetBooks que toma un parámetro de cadena, un nombre de autor y devuelve una colección de instancias de libros. El UML sería algo como esto:
Biblioteca + GetBooks (authorName: String): libro [0 .. *]
Su herramienta de diagramas UML debe apoyar este; Estoy usando Magic Draw. Este UML establece que GetBooks devuelve 0 o muchas instancias de libros. Ahora le toca al programador decidir cómo implementar el parámetro de retorno en el lenguaje de implementación (como se indicó anteriormente por Simon).
Hay una manera indirecta de representar esto.
Puede definir otra clase compuesta que tenga la relación compuesta de 1 .. * con su tipo de devolución específico y utilice esta nueva clase compuesta como su tipo de devolución.
Por ej. si desea devolver una colección de la clase Libro, cree una nueva clase Libros con asociación 1 .. * con Libro y use la clase Libros como su tipo de devolución.
- 1. método de utilidad para envolver un objeto en una colección
- 2. Obteniendo el objeto de una colección singleton
- 3. Representando una Genérico Método C# en una clase UML Diagrama
- 4. Filtrado de una colección Backbone devuelve una matriz de modelos
- 5. ¿Inicializar una colección dentro de un objeto?
- 6. ¿Por qué guava Multimap.values () devuelve una colección plana en lugar de una colección de colecciones?
- 7. subrayado Método 'encontrar' en una colección Backbone
- 8. LINQ: Búsqueda de una colección dentro de una colección para un solo objeto
- 9. LINQ DONDE método modifica colección de origen
- 10. ¿Cómo muestro qué tipo de objeto se devuelve de una matriz o método?
- 11. una colección vacía cuando LINQ donde no devuelve nada
- 12. Java devuelve el objeto/modifica el objeto (pautas de codificación)
- 13. método de la clase abstracta Scala que devuelve una nueva clase correspondiente objeto secundario
- 14. Cómo crear una extensión de marcado XAML que devuelve una colección
- 15. Colección/matriz contiene el método
- 16. VBA - Cómo agregar una colección a una colección de colecciones
- 17. ¿Cómo eliminar un objeto de una colección de listas?
- 18. SPSite.Exists() devuelve verdadero aunque la colección de sitios no existe
- 19. ¿Se llama a un método que devuelve una colección en cada iteración en una instrucción foreach en C#?
- 20. Meteor: Encontrar un objeto de una colección por _id
- 21. Método de biblioteca para particionar una colección por un predicado
- 22. Una alternativa productiva a UML
- 23. Convertir de JSON a objeto de colección
- 24. OrdenarPor objeto de Padres por anidada Colección
- 25. El método QSqlField name() devuelve ""
- 26. JavaScriptSerializer deserializar "colección" objeto como propiedad de objeto no
- 27. ¿Qué objeto devuelve jquery exactamente?
- 28. modo apropiado método __init __() que devuelve una clase falsa
- 29. C++ - función que devuelve objeto
- 30. El método ResourceManager.GetString() devuelve una cadena incorrecta de diferentes conjuntos
No existe una alternativa real al uso de los tipos de devolución como se explica en las respuestas. Pero tal vez la etiqueta "patrón" es un poco engañosa aquí. – ShiDoiSi