practice 18 简单工厂模式