DesignPattern:FactoryMethod