Composition
final class Company{
private final Employee Employee;
{
Company(EmpDetails details) {
engine = new Employee(details);
}
void assign() {
emp.work();
}
}Aggregation
final class Company{
private Employee engine;
void addEmployee(Employee emp) {
this.emp = emp;
}
void assign() {
if (emp != null)
emp.work();
}
}Dependency
final class Company{
void assign(Employee emp) {
if (emp != null)
emp.work();
}
}Abstraction
public interface Employee{
public void work();
public void off();
public void quit();
}Realisation
public abstract class Engineer implements Employee
{
public void work();
public void off();
public void quit();
}Generalization
public class SWEngineer extends Engineer
{
public void work()
{
System.out.println('SW Engineer working');
}
public void off()
{
System.out.println('SW Engineer is off today');
}
public void quit()
{
System.out.println('SW Engineer is quitting');
}
}Relationships
| Association | Defines a relationship between classes. Compositon and Aggregation are types of associations |
| Composition | the Employee is encapsulated within the Company . There is no way for the outside world to get a reference to the Employee. The Employee is created and destroyed with the company |
| Aggregation | The Company also performs its functions through an Employee, but the Employee is not always an internal part of the Company . Employees can be exchanged, or even completely removed. As the employee is injected, the Employee reference can live outside the Company. |
| Dependency | The company does not hold the employee reference. It receives an employee reference only to the scope an operation. Company is dependent on the Employee object to perform an operation |
| Abstraction | Defines the basic operations the implementer should adher to. Employee interface lists the general behavior of an employee |
| Realization | A class implements the behavior defined by the other other class or interface |
| Generalization | A class which is a special form of a parent class |
UML Relationship Pointers
Resources
- http://leninkumarkoppoju.blogspot.in/2012/10/uml-relations-association-aggregation.html
- http://en.wikipedia.org/wiki/Class_diagram
Reference: Quick Summary : Object Associations from our JCG partner Srividhya Umashanker at the Thoughts of a Techie blog.





