Software Development
Quick Summary : Object Associations
Composition
01 02 03 04 05 06 07 08 09 10 | final class Company{ private final Employee Employee; { Company(EmpDetails details) { engine = new Employee(details); } void assign() { emp.work(); } } |
Aggregation
01 02 03 04 05 06 07 08 09 10 | final class Company{ private Employee engine; void addEmployee(Employee emp) { this .emp = emp; } void assign() { if (emp != null ) emp.work(); } } |
Dependency
1 2 3 4 5 6 | final class Company{ void assign(Employee emp) { if (emp != null ) emp.work(); } } |
Abstraction
1 2 3 4 5 | public interface Employee{ public void work(); public void off(); public void quit(); } |
Realisation
1 2 3 4 5 6 | public abstract class Engineer implements Employee { public void work(); public void off(); public void quit(); } |
Generalization
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 | 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.
WTF?