Design patterns written down using yUML
[<<interface>>;AbstractFactory|+createProduct();]^-.-[ConcreteFactory|+createProduct();],
[<<interface>>;AbstractProduct]^-.-[ConcreteProduct]
[Director|+build();]++-[Builder|+buildPart();], [Builder]^-.-[ConcreteBuilder|+buildPart();+getResult():Product;]
[Creator|+factoryMethod():Product;]^-[ConcreteCreator|+factoryMethod():Product;]
[<<interface>>;Prototype|+clone():Prototype;]^-.-[ConcretePrototypeB|+clone():Prototype;],
[<<interface>>;Prototype|+clone():Prototype;]^-.-[ConcretePrototypeA|+clone():Prototype;]
[Singleton|-instance:Singleton = null|-Singleton();+getInstance():Singleton;]
[<<interface>>;Target|+request();]^-.-[Adapter|+request();],
[Adapter]-^[Adaptee|+specificRequest();]
[Abstraction|-impl:Implementor;+function()]^-[RefinedAbstraction |+refinedFunction();],
[Abstraction]<>-[Implementor|+implementation();],
[Implementor]^-[ConceteImplementor|+implementation();]
[Component|+opertation()]^-[Leaf|+operation();],
[Component]^-[Composite|+operation();+add();+remove();+getChild()],
[Component]0..*-<>1[Composite]