修改abstract_factory 接口