分离了部分代码与业务逻辑