Quelle est la différence entre agrégation, composition et dépendance? [dupliquer]
cette question a déjà une réponse ici:
- Quelle est la différence entre association, agrégation et composition? 17 réponses
Quelle est la différence entre agrégation, composition et dépendance?
7 réponses
agrégation implique une relation dans laquelle l'enfant peut exister indépendamment du parent. Exemple: classe (parent) et élève (enfant). Supprimer la classe et les élèves existent toujours.
Composition implique une relation où l'enfant ne peut exister indépendamment du parent. Exemple: Maison (parent) et Chambre (Enfant). Les chambres n'existent pas séparément d'une maison.
les deux ci-dessus sont des formulaires de confinement (d'où les relations parent-enfant).
Dependency est une forme plus faible de relation et en termes de code indique qu'une classe utilise un autre par paramètre ou type de retour.
la dépendance est une forme de association .
agrégation et composition sont presque identiques, sauf que composition est utilisé lorsque la vie de l'enfant est entièrement contrôlée par le parent.
agrégation
Car -> Tires
le Tires
peut être enlevé de l'objet Car
et installé sur un autre. Aussi, si la voiture est atteint, l' les pneus ne doivent pas nécessairement être détruit.
Composition
Body -> Blood Cell
quand l'objet Body
est détruit le BloodCells
obtenir détruit avec elle.
dépendance
relation entre deux objets dans laquelle le changement de l'un peut affecter l'autre.
Agrégation - partie séparable de l'ensemble. La partie a une identité propre, séparée de ce dont elle fait partie. Vous pouvez choisir cette partie et la déplacer vers un autre objet. (des exemples du monde réel: roue -> voiture, bloodcell -> corps)
Composition - partie non séparable du tout. Vous ne pouvez pas déplacer la pièce vers un autre objet. plus comme une propriété. (exemples du monde réel: courbe - > route, personnalité - > personne, max_speed - >voiture, propriété de l'objet - > objet )
noter qu'une relation qui est un agrégat dans un dessin peut être une composition dans un autre. C'est tout sur la façon dont la relation doit être utilisée dans ce design spécifique.
dépendance - sensible au changement. (quantité de pluie -> le temps, la position de tête -> la position du corps)
Note: "Bloodcell" -> Sang" pourrait être "Composition" que les Cellules Sanguines ne peut pas exister sans l'entité de Sang. "Sang" - > corps "pourrait être" agrégation " comme le sang peut exister sans l'entité appelée corps.
un objet associé à une relation composition n'existera pas à l'extérieur de l'objet contenant. Exemples sont un Rendez-vous et le propriétaire (une Personne) ou un Calendrier, un Verdict et un Patient.
d'autre part, un objet qui est agrégé par un objet contenant can existe à l'extérieur de l'objet contenant. exemples sont une porte et une maison; un employé et un ministère.
Un dépendance se rapporte à collaboration ou délégation , où un objet de demandes de services à partir d'un autre objet et est donc dépendant de la chose. En tant que client du service, vous souhaitez que l'interface de service reste constante, même si des services futurs sont offerts.
L'agrégation et la composition sont des termes que la plupart des gens dans le monde de L'OO ont acquis via UML. Et UML fait un très mauvais travail pour définir ces termes, comme L'ont démontré, par exemple, Henderson-Sellers et Barbier ("What is This Thing Called Aggregation?", "La formalisation de l'Ensemble de la Partie de la Relation dans le Langage de Modélisation Unifié"). Je ne pense pas qu'une définition cohérente de l'agrégation et de la composition puisse être donnée si vous êtes intéressé par être conforme à UML. Je vous suggère de regarder les travaux cités.
en ce qui concerne la dépendance, c'est une relation très abstraite entre les types (et non les objets) qui peut signifier presque n'importe quoi.
un objet peut en contenir un autre comme partie de son attribut.
- contient des phrases qui contiennent des mots.
- système informatique a un disque dur, ram, processeur, etc.
il n'est donc pas nécessaire que le confinement soit physique. par exemple, le système informatique a une garantie.
confinement: - pour accéder à l'objet intérieur, nous devons utiliser l'objet extérieur. Nous pouvons réutiliser l'objet contenu. Agrégation: - ici nous pouvons accéder à l'objet intérieur encore et encore sans utiliser l'objet extérieur.