1. 第一组重构

1. 提炼函数

当你想为接下来的一段代码写点注释时,那么这就暗示着,这段代码应该被提炼成一个函数,这个函数的名字应该是函数的功能,是做什么,而不是这么做,一般你想写什么注释,名字就重注释中抽取关键词。当遇到循环、条件等语句,可以将它们提炼成一个函数。

提炼函数的目的是将意图与实现相分离。所以一般有个主函数,里面调用其他的函数,这个主函数包含的就是意图,其他函数就是实现。

提炼函数时,如果要返回多个值,则考虑将这多个值组合成一个对象,不过一般都是一个函数最多返回一个值。

2. 内联函数(不是内部函数)

什么时候需要内联函数呢?

当函数内容与其名称一样清晰易于理解时;

当一群函数组织不太合理,则先合再分;

过多的委托层。

3. 将表达式提炼成变量

有时,将表达式提炼成变量,能更好地理解代码的含义。

而且也不需要重复地写表达式。

如果一个变量的作用域是一个对象,则将表达式提炼成一个方法。

4. 内联变量

如果表达式比变量更具表现力,则用表达式代替变量。

5. 改变函数声明

取一个准确的名字

参数的范围:是需要一个人,还是只需要一个人的年龄

改函数声明时,如果有其他人负责的模块会调用这个接口,则先写另一个声明,将原函数设为不推荐,在原函数中调用新函数。一段时间后,等客户端都使用了新函数,就将就函数删除。

6. 封装值

之前的重构只是控制数据结构的访问,封装值则限制外部修改值。当外部需要访问一个数据时,返回它的副本,这样即使修改了,也不会影响原来的数据。但有时外部就是需要更改原来的数据,要注意分辨。越是使用范围广的数据,越是需要一个封装函数。

7. 变量改名

给变量取一个准确的名字

8. 引入参数对象

当你发现一组数据总是在一起作为参数出现(数据泥团),这说明这一组有着某种关系,创建一个类,将它们移动到类中。

这么做往往会催生代码更深层次的改变,你可以把涉及这些数据而较少涉及其他数据的方法也移到该类中,这样软件的结构就更清晰。

9.函数组合成类

如果发现一组函数形影不离地操作同一数据块,就为它们及数据创建一个类。

10. 函数组合成变换

计算派生数据的逻辑收拢到一处,组合成变换。

这和9非常像,但是类中的方法会更新源数据,变换则不会,而是根据源数据计算新数据,保存新数据。

虽然在java、c#中只有类的概念。

11. 拆分阶段

当看见一段代码在做两件不同的事,就拆分成两个方法,每一个方法应该都有明确的边界。如果一块代码中出现的几段,它们分别使用不同的一组数据和方法,这就是需要拆分的明显线索。

如果第二个方法要用到第一个方法的结果数据(有多个),将这些数据作为一个结构体(如果类型相同,就返回数组),传递给方法二。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值