设为首页 加入收藏

TOP

代码重构(二):类重构规则(二)
2017-10-10 12:16:01 】 浏览:2361
Tags:代码 重构 规则
Delegate----隐藏委托关系

隐藏类之间的“委托关系”这一原则用起来是非常不错的,它可以简化类调用委托者的方式。简单的说就是讲委托调用的链,封装成相应的方法,使其隐藏掉具体的调用细节,从而简化了调用方式。下方会根据具体事例和测试用例来介绍一下Hide Delegate。

1.重构前的案例

  在下方代码片段中有两个类,这两个类互为依赖关系。Department中有People,该People对应的就是经理人。还有一个字段就是chargeCode,对应的是部门代码。而People类中有name--名字字段,department--所属部门字段。在People对象中可以委托department对象来获取经理的名字。

    

 

  获取People对象所在部门经理的名字的测试用例如下所示。在下方测试用例中创建了一个经理和一个员工,并为员工和经理绑定关系。zeluLi.department.manager.name就是委托department对象来调用经理的名字,这样调用未免太长,所以有必要使用Hide Delegate原则对其进行优化。

   

 

2.使用Hide Delegate进行重构

使用Hide Delegate进行重构的方式是比较简单的,就是在People中封装一个方法,在方法中返回经理的对象即可,这样就隐藏掉了委托关系。具体实现方式如下截图所示:

    

 添加上上面的函数后的调用方式如下:

    

Remove Middle Man(移除中间人)原则与Hide Delegate相反,就是没有必要将委托人进行隐藏,所以就使用Remove Middle Man原则将上面我们封装的获取委托人的方法进行移除。关于Remove Middle Man的范例就不做过多的赘述了。

 

六、Introduce Foreign Method----引入外加函数

这一点在开发中用的还是比较多的,有时候你在不想或者不能修改原类的情况下想为该类添加新的方法。在这种情况下就会使用到Introduce Foreign Method。在Swift语言中,使用Introduce Foreign Method原则特别简单,也就是在不改变类的情况下对类进行扩展也是特别简单的。因为Swift语言以及OC中有延展的功能,所以非常对此非常好实现的。下方的代码段就是对MyTest类使用extension为其扩展一个method2方法,具体如下所示。

   

 

今天的博客就先到这儿,后期还会继续更新关于重构的博客。本篇博客中的代码分享地址为:https://github.com/lizelu/CodeRefactoring-Swift

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇iOS开发--Swift RAC响应式编程初探 下一篇【Swift】UITableViewCell 中 TTT..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目