重构后的代码