重构：封装类似代码