重构：封装相同代码