[note] The «!new» stereotype on a Usage from a Factory class (or a method of a Factory class, or both) to a concrete implementation Class for an Interface product indicates that the Factory (by default) uses that implementation Class as the product.

If the factory is subclassed and a creation method is overridden to use a different implementation class, an additional «!new» Usage may be used from the subclass (or the overridden subclass method).


Usages from methods/operations indicate clearly exactly which implementation Class is used for which Interface product, however there are certain graphical disadvantages:

- Usages from operations/methods lead to clutter in the diagrams, because the order of the operations/methods may not match well (be near to) the implementation Class symbol.

- It is very difficult to tell when method the Usage is drawn from, since it is indicated by a small circle connection point on the right-hand-side of the method/operation text.

- If you close the operations compartment of a Class/Component symbol the Usage relationship no longer appears ! It is still in the model, but it does not work well for graphically associative modelling.

Note applies to ...
Visit also