Diferència clau: agregació i composició
La programació orientada a objectes (OOP) és un paradigma comú en el desenvolupament de programari. L'objecte és una instància d'una classe. No és possible crear objectes alhora. Hi hauria d'haver un plànol o una descripció per crear un objecte. Aquest pla es coneix com a classe. Una classe conté propietats i mètodes. Els objectes es creen mitjançant classes. La classe i l'objecte són semblants a un pla i una casa al món real. No és possible construir una casa sense un pla adequat. De la mateixa manera, s'utilitza una classe per crear un objecte. Un objecte col·labora amb altres objectes. Un enllaç amb representa la relació de dos o més objectes s'anomena "associació". L'agregació i la composició són tipus d'associacions. Descriuen la relació entre classes. En aquest article es parla de la diferència entre l'agregació i la composició. La diferència clau entre l'agregació i la composició és que l'agregació és una associació entre dos objectes que descriu la relació "té una" i la composició és un tipus d'agregació més específic que implica la propietat.
Què és l'agregació?
Una relació entre dos objectes es mostra dibuixant una línia en Unified Modeling Language (UML). L'enllaç és una associació. UML ajuda a obtenir una representació visual del sistema. És diferent dels llenguatges de programació habituals. L'associació també defineix la multiplicitat d'objectes. Són un a un, un a molts i molts a molts. Quan un únic objecte de la classe A està associat amb l'únic objecte de la classe B, això és una relació un a un. Un exemple és un autor que escriu un llibre. En aquest exemple, un autor està escrivint un llibre.
Quan un objecte de la classe A s'associa amb molts objectes de la classe B, es tracta d'una relació d'un a molts. Un exemple és que un departament pot tenir molts empleats. Quan l'objecte de la classe A està associat amb molts objectes de la classe B i un objecte de la classe B està associat amb molts objectes de la classe A, es tracta d'una associació de molts a molts. Un exemple és que un empleat pot treballar en diversos projectes i un projecte pot tenir diversos empleats.
L'agregació és una associació de tipus que descriu més la relació entre objectes. L'agregació descriu "té una" relació. Alguns exemples que descriuen la relació són, un estudiant "té un" identificador d'estudiant, un vehicle "té un" motor. També és possible ampliar una gran quantitat amb la relació. Alguns exemples són, un banc "té molts" comptes bancaris, una classe "té molts" estudiants. Es pot explicar amb l'exemple següent.
Figura 01: Agregació
Segons l'exemple anterior, l'aula està formada per un alumne o molts estudiants. La multiplicitat també s'utilitza per indicar el nombre d'objectes. Descriu que una aula té diversos alumnes. El símbol del diamant representa l'agregació en UML. Els objectes d'estudiant no es basen en l'objecte de classe. Si l'objecte de classe es destrueix, no afectarà els objectes de l'alumne. Aquests objectes encara existiran.
Què és la composició?
La composició és una forma més específica d'agregació. Descriu la propietat. Es pot explicar amb l'exemple següent.
Figura 02: Composició
Segons l'anterior, l'objecte llibre consta d'un objecte de pàgina o pàgines. La multiplicitat també s'utilitza per indicar el nombre d'objectes. Descriu que una aula té diversos alumnes. El símbol del diamant que es destaca representa la composició en UML. Com que el llibre té una pàgina o moltes pàgines, és una agregació, però està més concretada. Si l'objecte del llibre es destrueix, els objectes de la pàgina també es destrueixen. Els objectes de pàgina no poden existir sense l'objecte de llibre. Per tant, la composició és una forma més específica d'agregació que implica la propietat.
Quines semblances hi ha entre l'agregació i la composició?
- Tots dos s'utilitzen a la programació orientada a objectes.
- Tots dos s'utilitzen en el llenguatge de modelatge unificat (UML) per obtenir una comprensió visual del sistema.
Quina diferència hi ha entre l'agregació i la composició?
Agregació vs. composició |
|
L'agregació és una associació entre dos objectes que descriu la relació "té una". | La composició és el tipus d'agregació més específic que implica la propietat. |
Símbol UML | |
L'agregació s'indica amb un diamant. | La composició s'indica amb un diamant ress altat. |
Funcionalitat | |
En conjunt, si l'objecte propietari es destrueix, no afectarà l'objecte que el conté. | A la composició, si l'objecte propietari es destrueix, afectarà l'objecte que el conté. |
Resum: agregació vs composició
La programació orientada a objectes és un paradigma important en el desenvolupament de programari. En POO, el sistema es modela mitjançant objectes. Aquests objectes no existeixen de manera aïllada. Els objectes col·laboren amb altres objectes. La relació entre objectes es coneix com a associació. L'agregació i la composició són tipus d'associació. La diferència entre l'agregació i la composició és que l'agregació és una associació entre dos objectes que descriu la relació "té una" i la composició és el tipus d'agregació més específic que implica la propietat. Tant l'agregació com la composició ajuden a comprendre el comportament del sistema.
Baixa la versió PDF d'Agregació vs Composició
Podeu baixar la versió PDF d'aquest article i utilitzar-la per a finalitats fora de línia segons la nota de citació. Si us plau, descarregueu la versió PDF aquí Diferència entre l'agregació i la composició