重新封装后的代码