--------------------Implement 9 Design Pattern of 3 kinds----------------------- I. Creational 1.1 Singleton 1.2 Factory method 1.3 Object pool 1.4 Buidler II. Structural 2.1 Dependency injection 2.2 Proxy 2.3 Adepter III. Behavior 3.1 Observer 3.2 Command 3.3 Template