Design patterns: Singleton，Abstract Factory, Factory Method,Builder，Prototype，Iterator，Observer，Template Method，Command，State，Strategy，Chain of Responsibility,Mediator，Visitor，Interpreter，Memento，Composite，Facade，Proxy，Adapter,Decrator，Bridge，Flyweight，