This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
I think there are two types of Association : 1) Aggregation 2) Composition
1) Aggregation : I think you can think Aggregation part as Dependency. When a Car class need Tyres , and these tyres are provided to Car constructor from outside when constructing the Car object, then your Car class is dependent on the car list.
As in this example client of Car has to pass tyreList to its constructor.
2) Composition : When your Car class need not its client to pass anything to it, means you Car class will make its tyres itself, then it is using Composition. Here different types of dependency used, here Car is dependent on the Tyre class, not on its Client class to provide him tyres. So you can say Aggregation are more dependent on its client and tyres. While composition is not dependent on its client.
I think Association uses Dependency to work. So Association is the client of Dependency, think without any type dependency how Association will work?
Joined: Sep 24, 2002
I got the answer from ThoughtWorks web site:
Dependency is a loose form of Association. It is "optional" to show dependency in class diagrams. It is represented by a dotted arrow.