重构注册的代码