重构函数