+1  A: 

I think it means that a ConcreteCreator has to know what a ConcreteProduct is to create it, so there's an explicit dependency there. The factory method creates a Product, but the ConcreteCreator override of that method has to return a ConcreteProduct.

duffymo
+2  A: 

As you rightly state, the dashed line indicates a dependency relationship between ConcreteCreator (as the dependent, or client, element) and ConcreteProduct (as the independent, or supplier,element).

In this specific case, the line indicates that ConcreteCreator is responsible for creating instance(s) of ConcreteProduct. This could have been made more clear by attaching the 'create' stereotype to the dependency.

Brandon E Taylor
yeah, that's why i'm confused on the pattern diagram. a <<create>> stereotype should have been there. the diagram is not really understandable by beginners like me.
jerbersoft
A: 

This isn't just the Factory Method - this looks more like the Abstract Factory Pattern. A specific concrete derived class of Creator will create a corresponding instance of a derived Product class.

John Saunders
click on the link above, it points to the "Factory Method" pattern and take a look at the diagram.
jerbersoft
It's a direct copy of the "Factory Method" diagram on p108 of GHJV
Pete Kirkham
+1  A: 

The broken line/empty arrow head denotes a dependency, meaning that ConcreteCreator "uses" ConcreteProduct in some way. The arrow itself doesn't define the nature of that dependency, only that a dependency exists and that ConcreteProduct is not actually a member of the ConcreteCreator.

The provided note (i.e., "return new ConcreteProduct") implies that ConcreteCreator will be instantiating (or creating) objects of type ConcreteProduct, which is natural for a factory. Traditionally in UML, you could clarify this relationship by writing "<<creates>>" over the dashed arrow. UML calls these notes "stereotypes."

See Allen Holub's UML Quick Reference for more information. You can see he has a very similar example where "Users" create "Resources".

Ryan Bright