Adapter: helps two incompatible interfaces to work together Builder: create complex objects that are hard to configure Command: performs some specific task without having any information about the receiver of the request Composite: builds a hierarchy of tree objects and interacts with all them the same way Decorator: vary the responsibilities of an object adding some features Factory: create objec