一个ruby风格的类工厂