In a composition relationship,
an object is part of its containing object.
The container is responsible for the part.
The persistence of the part is often the same as the persistence
of the container.
In an aggregation relationship,
an object is contained in another object.
If the container disappears, the contained objects may continue
The contained object may also be related to several containers.
In an association relationship,
an object is known by another object.
Associated objects may know about each other,
exchange messages with each other, but neither is responsible
for the existance of the other.
In a utilization relationship,
a client object uses the services of a server object.
The client knows about the server but the server does not
know about the client.
In essense, this is one way association.
In a utilization relationship, the client delegates work to a server.
But, delegation may occur in the other types of relationships.
An aggregate often delegates work to its parts,
and associates often delegate work to each other.