首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

复建记录

2014-04-21 
重构记录2013-12-19 方法命名:方法名称体现方法的功能,与谁调用无关问题描述:磨课活动中有些步骤必须全部

重构记录

2013-12-19 方法命名:方法名称体现方法的功能,与谁调用无关

问题描述:磨课活动中有些步骤必须全部活动成员都操作才算完成,由于活动成员中存在一些无效用户导致该步骤无法完成(这些无效成员是不会执行操作的),活动管理员发现这些无效用户并删除后,逻辑上这个步骤应该算是完成了,但是完成标准的设置是在用户操作的时候判断的,因为删除用户后没有进行该步骤的操作,所以不会去判断完成标志。

?

增加了一个删除用户后重新计算完成标志的方法

public void updateFinishedWhenDeleteUser(Integer actId),当删除活动成员时调用该方法。

该方法的功能就是重新计算各步骤是否真正完成。

??? @Async//删除用户后通过事件调用
??? public void onApplicationEvent(DeleteActUserEvent event) {
??? ??? actStepService.updateFinishedWhenDeleteUser((Integer)event.getSource());
??? }

?

后来发现之前的历史数据没法自动完成,需要通过一个操作重新触发,这时该方法的名称就不太合适了,因为和删除用户没有关系。方法功能的本意是重新计算,而不是什么时候重新计算。

?

//对历史数据进行处理,这时候updateFinishedWhenDeleteUser名称明显不合适

List<Activity> allacts=activityService.selectActivitys(formIds.toArray(new Integer[0]));
??? ??? for(Activity act:allacts){
??? ??? ??? actStepService.updateFinishedWhenDeleteUser(act.getId());
??? ??? }

将方法名称重构成updateFinishedStatus,上面两种情况的调用改成如下形式。

?

??? ??? List<Activity> allacts=activityService.selectActivitys(formIds.toArray(new Integer[0]));
??? ??? for(Activity act:allacts){
??? ??? ??? actStepService.updateFinishedStatus(act.getId());
??? ??? }

?

??? @Async
??? public void onApplicationEvent(DeleteActUserEvent event) {
??? ??? actStepService.updateFinishedStatus((Integer)event.getSource());
??? }

热点排行