¿Cuál es la diferencia entre agregación y combinación?
¿La relación de agregación? es un tipo de relación de asociación y es una relación de asociación fuerte. La agregación es la relación entre un todo y un individuo. Por ejemplo, la relación entre la categoría de automóvil y la categoría de motor, la categoría de neumáticos y otras categorías de piezas es la relación entre el todo y el individuo. Al igual que las relaciones de asociación, las relaciones de agregación también se implementan mediante variables de instancia. Sin embargo, las dos clases involucradas en la relación de asociación están en el mismo nivel, mientras que en la relación de agregación, las dos clases están en niveles desiguales, una representa el todo y la otra representa la parte
La relación de composición Es un tipo de relación de asociación y es una relación más fuerte que la relación de agregación. Requiere que el objeto que representa el todo en una relación de agregación ordinaria sea responsable de representar el ciclo de vida de parte del objeto, y la relación de combinación no se puede compartir. El objeto que representa el todo debe ser responsable de mantener vivo el objeto parte y, en algunos casos, aniquilar el objeto responsable de la parte. Un objeto que representa un todo puede pasar un objeto que representa una parte a otro objeto, que es responsable del ciclo de vida de este objeto. Es decir, el objeto que representa la pieza sólo puede combinarse con un objeto en cada momento, siendo este último el responsable exclusivo del ciclo de vida. Las piezas tienen el mismo ciclo de vida que el todo.
El grado de acoplamiento de las relaciones anteriores aumenta en secuencia (el concepto de grado de acoplamiento se discutirá en detalle más adelante. Puede entenderse temporalmente como el grado de impacto en otras clases cuando una clase cambia. Cuanto más pequeña Cuanto menor sea el impacto, cuanto más débil sea el acoplamiento, mayor será el impacto (más fuerte será el acoplamiento). Ya sabemos por la definición que la dependencia es en realidad una asociación relativamente débil, la agregación es una asociación relativamente fuerte y la combinación es una asociación más fuerte. Entonces, si las distinguimos en general, de hecho, estas cuatro relaciones son todas relaciones relacionadas. ?
La relación de agregación es una relación de asociación relativamente fuerte, que generalmente se implementa en forma de variables miembro en Java. Existe una relación entre el todo y las partes entre los objetos. Por ejemplo, en el ejemplo anterior?class?Driver?{
//Utilice variables miembro para implementar relaciones de agregación
Car?mycar;
public?void ?drive( ){
mycar.run();
}
} Si al código anterior se le da la siguiente semántica: el automóvil es un automóvil privado y es propiedad de la parte conductora. Entonces el mismo código representa una relación de agregación. Las relaciones de agregación generalmente utilizan el método setter para asignar valores a las variables miembro. ?
Supongamos que se da la siguiente semántica: un automóvil es una propiedad imprescindible para un conductor. Para convertirse en conductor, primero debe tener un automóvil. Si el automóvil se ha ido, el conductor no lo querrá. vivir. Y si el conductor deja de ser conductor, el coche quedará destruido y nadie más podrá utilizarlo. Eso significa una relación de combinación. En términos generales, para expresar una relación de combinación, a menudo se usa un constructor para lograr el propósito de la inicialización. Por ejemplo, en el ejemplo anterior, se agrega un constructor con Car como parámetro?public?Driver(Car?car){.
mycar?=?car;
}Por lo tanto, la asociación, agregación y combinación solo pueden juzgarse haciendo coincidir la semántica y el contexto, y solo se nos proporciona un fragmento de código para juzgue si es asociación, agregación o La relación de combinación no se puede juzgar.