重构部分代码
添加测试用例