adapter, command, decorator, factory, observer, proxy and strategy pattern