添加工厂类（导致编译器crash？）