重构接口，先让项目能编译