Insus.NET较习惯做法,是在次完成后,抽一些掉时间对写好的代码重新审视。比如这些天写的Web
Api的次来说,发现有成百上千值得重构代码。

出ASP.NET
MVC程序,与数码有关有关系的一般是在控制器和Entity实体之间。

开头重构是将Api控制器OrdersController.cs的次移至实体OrderEntity.cs中去:
第一
重构public IEnumerable<Order> Get()方法,
图片 1

这个道换至Entity:
图片 2

这般同样运动,那以控制器的Get()方法,就可变更吧:
图片 3

第二
 重构public void Post(Order o)方法:
图片 4

在实业添加
图片 5

控制器方法重构之后:
图片 6

第三
重构控制器OrderController另一个措施public void Post(Order o):
图片 7

管引方法易至实体:
图片 8

每当控制器中的方法被重构之后:
图片 9

第四
重构public void Put(Order
order)方法,把这个道换至Entity中错过,并创一个新方式,稍作一些稍修改:
图片 10

 

于实体OrderEntity中新建的public void Update(Order order, string
fileVirtualPath)方法:
图片 11

 
重构之后,方法体内代码,可应用2句即可,并剔除移走的代码:
图片 12

第五,最后一个内需迁移移的凡Delete()方法:
图片 13

以实业类吃,创建一个崭新的Delete()方法:
图片 14

 

受重构之后,在控制器看到底Delete()方法,简洁多了。更多之逻辑处理代码不必在控制方式展现。
图片 15

 
说到底OrderController.cs类别重构好的类,如下,删除注解的代码,下机标记1暨标记5即使是我们地方所重构了之计:
图片 16

现在咱们得关闭OrderControler.cs类,打开OrderEntity类,对斯看似进行重构。找到下面三单方式中
public void AppendDataToExistingJsonFile(Order order, string
fileVirtualPath)
public void Update(Order order, string fileVirtualPath)
public void Delete(Order order, string fileVirtualPath)

脚的代代码有冗余,如:
图片 17

管它们形容成一个私房方法:
图片 18

观望地方代码示例中之辛亥革命箭头否,说明三独主意外曾引用了重构好之代码了。
图片 19

连着下去我们又发现四只措施
public void PostAndSaveToFile(Order order, string fileVirtualPath)
public void AppendDataToExistingJsonFile(Order order, string
fileVirtualPath)
public void Update(Order order, string fileVirtualPath)
 public void Delete(Order order, string fileVirtualPath)
面临,下面这段代码是以List<Order>对象写成json文件,它们于这OrderEntity类中,已经显冗余了:
图片 20

写成一个私房方法:
图片 21

然四只道均可以去冗余部分的代码,引用这私有的点子即可,不过第一只方式,public
void PostAndSaveToFile(Order order, string fileVirtualPath)
援这道,有些题目,因为重构好的方传入的参数是List<Order>,因此用举行些修改,如下:
图片 22

还有
public void AppendDataToExistingJsonFile(Order order, string
fileVirtualPath)
public void Update(Order order, string fileVirtualPath)
public void Delete(Order order, string fileVirtualPath)
老三单措施吃生出一个功效是同样的,就是读取Json文件,并转移为List<Order>对象,虽然代码不一相同,但是咱是足以将她形容成一个合的:
图片 23

这则,三个主意就是可引用这措施:
图片 24

于Update()和Delete()方法,还出2句,是贯彻删除文件的功能:

图片 25图片 26

 if (System.IO.File.Exists(newFilePhysicalPath))
{
   File.Delete(newFilePhysicalPath);
}

View Code

足重构写成一个民用方法并对先后重构如下:
图片 27

OK,最后整理一下4单个人方法:
图片 28

 

相关文章

网站地图xml地图