OO Relationships - Association, Aggregation & Composition [Note: Below material has been quoted from http://cs.joensuu.fi/pages/koles/oop/OOP_Development.ppt]
In Object Oriented world, if one class has to communicate with any other class (or classes), it has to communicate by using one of the Object Oriented Relationships. There are three (3) OO Relationships,
Inheritance or Generalization Aggregation o Weak o Strong (Also called as Composition or Containment) Association
Association Association represents a general binary relationship that describes an activity between two classes. An association is illustrated using a solid line between the two classes with an optional label that describes the relationship. Association may have navigability, i.e. direction of the relation. Each class involved in the relationship may have a role name played by the class in the relationship.
Examples
A student taking a course is an association between the Student class and the Course class. A faculty member teaching a course is an association between the Faculty class and the Course class.
Figure: Class Diagram for Examples above
Dept. of CS & IT, Superior University
1
Self Association Association may exist between objects of the same class. For example, a person may have supervisor.
Figure: Self Association
Dept. of CS & IT, Superior University
2
Aggregation Aggregation is a special form of association.
Weak Aggregation Weak Aggregation represents an ownership relationship between two classes. Aggregation models the relationship like has-a. Example Customer has bank account. Room has chairs.
Figure: Weak Aggregation
Dept. of CS & IT, Superior University
3
Strong Aggregation (Also called as Composition/Containment) Composition is a stronger form of aggregation. In a composite object the components exists only as part of the composite.
Rules of Thumb
The whole and parts have coincident lifetimes. Both classes represent physical items.
Examples An engine is a part a car. A package is a part of a shipment. Employee is a part of a team.
Figure: Strong Aggregation
Dept. of CS & IT, Superior University
4