您的位置:首页 > 编程语言

一次代码重构记录

2013-12-13 10:19 337 查看
先说前言:

最近在做一个预警的功能。其中包含两个表,一个预警主表,一个该预警对应岗位的子表,这两个表是一对多的关系。

现在要做的这个功能是要新增一个预警。

新增预警时,要对主表插入一条记录,对子表插入多条记录。主表的主键是预警GUID,子表是双主键,预警GUID+岗位GUID。

好,那么进入正题,这个功能实现起来不难。 第一次写完之后,我把对这两个表的数据插入和简单的校验都放在一个方法中。

其中,我觉得子表的数据集合的实体类生成方法,即预警岗位的实体类集合,可以写入一个方法里,就将其抽离成一个方法。

第一次实现的代码如下所示:

internal void AddWarning(CTPenetrateLowcostWarning warning, List<CTPenetrateLowcostWarningStation> warningStations)
{
if (warning == null || warningStations == null || warningStations.Count == 0)
{
return;
}

var isSuccess = true;
var plasView = new CTPenetrateLowcostWarningStationView();

using (DbTransaction trans = this.BeginTransaction())
{
try
{
isSuccess = isSuccess && this.Insert(warning, trans);
foreach (var station in warningStations)
{
isSuccess = isSuccess && plasView.Insert(station, trans);
if (!isSuccess)
{
break;
}
}

if (isSuccess)
{
isSuccess = isSuccess && this.CommitTransaction(trans);
}
else
{
this.CloseTransaction(trans);
}
}
catch (Exception)
{
this.CloseTransaction(trans);
}
}
}


AddWarning方法
--------------------------------------------------------------------------------------------------------------

在数数行数,主方法的行数已经降到19行。这次我总算是满意了,也没有再抽方法的冲动,好了,这个方法完工。

其中各抽出来的方法中,只有AddWarning方法要接近40行。其他都是20左右。

总结一下,这个主方法从接近70行减少到19行。对这个结果我自己就不做什么评论了。

欢迎大家回复关于重构、优化、精简代码的建议。 对于我的重构,觉得不对的地方也欢迎指正。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: