重构了更新方法