重构实现， 减少代码量