La relación entre clase y clase (la explicación detallada no está terminada)

Relación fuerte y débil: dependencia <asociación <agregación <combinación <implementación <herencia

Dependencia:

Simplemente entienda, la dependencia es que una clase A usa otra clase B, y esta relación de uso es accidental, temporal y muy débil, pero el cambio de clase B afectará a la clase A. Por ejemplo, si alguien quiere cruzar un río y necesita tomar prestado un bote, la relación entre las personas y el bote es de dependencia. A nivel de código, la clase B es utilizada como parámetro por la clase A en un método. En el diseño del diagrama de clases UML, la relación de dependencia está representada por una línea de puntos con una flecha que apunta de la clase A a la clase B.

 image.png

relación de conexión:

  La asociación refleja un fuerte nivel de dependencia semántica entre dos clases. Por ejemplo, mi amigo y yo. Esta relación es más fuerte que la dependencia, no hay posibilidad de dependencia, y la relación no es temporal, generalmente es a largo plazo. Sexual y la relación entre las dos partes es generalmente igual. La asociación puede ser unidireccional o bidireccional. A nivel de código, la clase B asociada aparece en la clase A asociada en forma de atributos de clase, o la clase A asociada hace referencia a una variable global de la clase B asociada. En el diseño del diagrama de clases UML, la relación de asociación está representada por una línea sólida con flechas que apuntan desde la clase de asociación A a la clase B asociada, y los roles y las marcas de multiplicidad de las partes asociadas se pueden marcar en ambos extremos de la asociación.

 

(1) Asociación unidireccional

image.png

(2) Asociación bidireccional

image.png

Relación de agregación:

La agregación es un caso especial de relación de asociación, que encarna la relación entre el todo y la parte, es decir, la relación tiene-a. En este momento, el todo y las partes son separables, pueden tener sus propios ciclos de vida y las partes pueden pertenecer a múltiples objetos integrales o pueden ser compartidas por múltiples objetos integrales. Por ejemplo, la relación entre computadoras y CPU, empresas y empleados, por ejemplo, una formación de portaaviones incluye transportistas marítimos y aéreos, destructores, aviones basados ​​en portaaviones y submarinos de ataque de propulsión nuclear. A nivel de código, es coherente con la relación de asociación y solo se puede distinguir del nivel semántico. En el diseño del diagrama de clases UML, la relación de agregación está representada por un diamante hueco y una flecha sólida. 

image.png

Relación de combinación:

La combinación también es un caso especial de relación de asociación, que encarna una relación contiene-a, que es más fuerte que la agregación y también se denomina agregación fuerte. También refleja la relación entre el todo y la parte, pero en este momento el todo y la parte son inseparables, y el final del ciclo de vida del todo significa el final del ciclo de vida de las partes, como las personas y el cerebro humano. . A nivel de código, es coherente con la relación de asociación y solo se puede distinguir del nivel semántico. En el diseño del diagrama de clases UML, la relación de combinación está representada por un diamante sólido y una flecha sólida. 

image.png

Darse cuenta de la relación:

La implementación se refiere a la función en la que una clase implementa la interfaz de la interfaz (puede haber múltiples), y la implementación es la relación más común entre una clase y una interfaz. En Java, este tipo de relación está claramente identificado por las palabras clave implements, y generalmente no es controvertido en el diseño. En el diseño del diagrama de clases UML, la realización está representada por una línea discontinua con una flecha triangular hueca, apuntando desde la clase a la interfaz realizada. 

Relación de herencia:

 La herencia se refiere a la capacidad de una clase (llamada subclase, subinterfaz) de heredar las funciones de otra clase (llamada clase principal, interfaz principal) y agregar sus propias funciones nuevas. En Java, la relación de herencia está claramente identificada por la palabra clave extiende, que generalmente no es controvertida en el diseño. En el diseño del diagrama de clases UML, la herencia está representada por una línea sólida con una flecha triangular hueca, desde la subclase a la clase principal o la subinterfaz a la interfaz principal. 

image.png

Supongo que te gusta

Origin blog.csdn.net/TGB_Tom/article/details/110351041
Recomendado
Clasificación