Estoy dibujando algunos UML en los que una clase concreta se hereda de una clase abstracta que define un método virtual puro. ¿Se requiere mostrar este método en la clase concreta también? Está implícito al heredar de la clase abstracta.En UML, ¿tiene que mostrar la implementación concreta de un método abstracto?
Respuesta
No, no es necesario. de hecho, en general, no coloque nada más en el UML que debe aclarar lo que dice, a menos que (Dios no lo permita) intente generar código a partir de él.
La mejor guía que conozco para UML es UML Distilled por Martin Fowler.
acabo de encontrar este enlace, y parece que lo hace:/
http://java-x.blogspot.com/2007/01/implementing-visitor-pattern-in-java.html
Uhm, ¿estás seguro de que tienes que 'sobresalir porque un tipo que tiene un blog lo hizo? –
Al explicar el patrón, es útil. Como afirmación general, agrega complejidad sin agregar información. –
Lo más gracioso de UML es que no tiene una definición bastante floja y variada. La mayoría de las cosas que se llaman UML en realidad no son mucho más que diagramas de bloques. Hay mucha ambigüedad en cualquier implementación de UML.
Yo diría que si está haciendo esto para una presentación o un diagrama arquitectónico, puede ocuparse de gran parte de la posible ambigüedad con 'palabras'. Si va a generar código a partir de él utilizando alguna aplicación, debe verificar los documentos de esa aplicación en particular.
Está implícito y de hecho, muchas herramientas CASE mostrarían el método heredado como parte de la lista de los métodos de la subclase al hacer clic en la clase al mirar sus propiedades (y algunas herramientas CASE incluso tienen la opción de mostrando también los métodos heredados en el diagrama)
- 1. Método abstracto C# con implementación de clase base solamente?
- 2. El método tiene que ser anulado pero no es abstracto
- 3. Está imponiendo una implementación de método abstracto unpythonic?
- 4. ¿Qué es una implementación concreta?
- 5. La función C++ no acepta la implementación concreta
- 6. Método abstracto en Ruby
- 7. ¿Método abstracto o virtual?
- 8. ¿Cómo escuchar un método abstracto?
- 9. Método abstracto PHP versus método predeterminado
- 10. Mostrar visibilidad en Argo UML
- 11. método abstracto de error
- 12. Mostrar "interno protegido" en UML?
- 13. ¿Qué utilidad tiene UML?
- 14. C# Desechar método abstracto
- 15. ¿Cómo puedo crear un método en JS como un método abstracto en Java?
- 16. Java: Anulando un método abstracto en la subclase
- 17. Declaración de método abstracto - virtual?
- 18. Java: tipo de retorno polimórfico en un método abstracto?
- 19. Método abstracto que devuelve una instancia de clase derivada
- 20. Invalidar método abstracto sobre creación de la instancia en C#
- 21. La implementación de la clase Mostrar
- 22. Clase/método abstracto, cómo C# -> VB.NET
- 23. UML - Método de objeto Devuelve una colección
- 24. lo que es un método abstracto en una interfaz en Java
- 25. ¿Cómo puedo determinar si se implementa un método abstracto?
- 26. Cómo mostrar la relación de herencia privada en un diagrama de clase UML
- 27. SQLAlchemy Relación polimórfica con la herencia concreta
- 28. ¿ActiveModel tiene un módulo que incluye un método "update_attributes"?
- 29. Obtener Intellisense en la interfaz que implementa un método si ese método no tiene sus propios comentarios XML
- 30. Definir un método abstracto sin especificar los parámetros
+1 por "dios no lo quiera". Supongo que eres un "dibujante" de UML y no un fanático de MDA, Charlie. Estoy de acuerdo contigo. Creo que la luna de miel de UML como salvación del software ha llegado y se ha ido. – duffymo
Hice un montón de mi trabajo de doctorado en "ingeniería de software asistida por computadora" y sí, no estoy convencido de la utilidad de los detalles rigurosos en UML. –
Si hubiésemos estandarizado UML Distilled, UML podría haberse ejecutado mejor. –