2012-04-19 58 views
5

Tengo algunas clases privadas internas y no estoy seguro de dónde colocarlas en los diagramas de mi clase. ¿Deberían estar en sus clases externas o solos?Clases privadas y uml

Respuesta

1

UML es para diseñar o describir arquitecturas complejas. No creo que una clase interna sea tan importante mencionarlo en un diagrama de clase UML. Si diseña su sistema en el nivel de interfaz, su implementación y la clase privada estará desenfocada, al igual que todos los métodos privados. Sus diagramas solo deben contener métodos públicos = métodos de interfaz.

2

Puede representar externamente con un containment tener un signo + en el lado de la clase externa. Lo puedes encontrar here.

0

No creo que pueda tener una clase dentro de otra clase en un diagrama de clase UML. La forma en que los presente en UML debe reflejar su relación estructural con las clases principales. Si se crean interiores solo por conveniencia, puedes conectarlos. Si tienen relaciones de contención o agregación, UML tiene la sintaxis adecuada. En cualquier caso, las clases internas son específicas del idioma y sería extraño (y de hecho un diseño erróneo) que UML tenga algún soporte explícito para ellas.

potencialmente relacionados discusión externa: http://www.coderanch.com/t/99318/patterns/Inner-Class-UML

2

Siempre hay una diferencia entre el lenguaje UML y cualquiera que sea la herramienta de modelado que está utilizando, por lo que es la mejor manera de lograr algo depende de la herramienta.

En UML, las clases tienen visibilidad/alcance, al igual que los miembros de la clase. En otras palabras, UML permite clases privadas, pero eso no significa que su herramienta pueda mostrar la "privacidad" de la clase.

UML también permite que las clases contengan otras clases. En otras palabras, las clases pueden actuar como paquetes. Nuevamente, cómo varía la herramienta esto varía.

Desde una perspectiva pura de UML, recomendaría tener la clase interna contenida dentro de la externa y marcada como privada.

En un diagrama, si su herramienta no muestra el espacio de nombre, puede cambiar el tamaño de la clase externa y colocar el interior dentro de ella. Si su herramienta permite el cambio de tamaño, eso es.

Finalmente, a menos que solo tenga ocho o diez clases en total, le recomendaría mostrar las clases internas en un diagrama separado.