`

浅谈代码重构

 
阅读更多

一、代码重构

软件开发中,代码质量与其整洁度成正比,干净的代码,既在质量上可靠,也为后期维护、升级奠定了良好基础。

实际开发中,我们经常听到”重构”二字。重构既不修正错误,又不增加新的功能性。反而它是用于提高代码的可读性或者改变代码内部结构与设计,并且移除死代码,使其在将来更容易被维护。

关于重构说明,如下图所示:

code_refactoring


二、常用的重构方法

1.封装成员变量(Encapsulate Field)

将仅限于本类使用的变量重写成私有(private)成员变量,并提供访问方法(accessor method)。这种重构方式可以将与外部调用者无关的变量隐藏起来,减少代码的耦合性,并减少意外出错的概率。

示例代码:

 

2.提取方法(Extract Method)

将大段代码中的一部分提取后,构成一个新方法。这种重构可以使整段程序的结构变得更清晰,从而增加可读性。这也对函数(Function)通用。

示例代码:

 

3.一般化类型(Generalize Type)

将多个类/函数共用的类型抽象出可以公用的基类(base class),然后利用多态性追加每个类/函数需要的特殊函数。这种重构可以让结构更加清晰,同时可以增加代码的可维护性。

示例代码:

 

4.函数归父(Pull Up)

将方法从子类移动到父类。

5.函数归子(Push Down)

将方法从父类移动到子类。

6.方法更名(Rename Method)

方法从父类移动到子类。

示例代码:

分享到:
评论

相关推荐

    浅谈设计模式在Android代码重构中的应用.pdf

    【摘要】本文主要探讨了设计模式在Android应用开发中的重要性,特别是在代码重构过程中的应用。随着Android系统的广泛使用和应用市场的激烈竞争,开发者面临着提升代码质量和运行效率的压力。文章指出,代码重构是...

    浅谈CSS代码重构

    【CSS代码重构】是优化和改进现有CSS代码的过程,旨在提高代码的可读性、可维护性和性能,同时保持原有功能不变。重构的关键在于改善代码结构,使其更符合最佳实践和设计模式,以便团队协作和长期项目的可持续发展。...

    浅谈SQL重构在铁路工务信息PWMIS软件中的应用.pdf

    重构,简单来说,就是对现有的代码或数据库结构进行改进,以提高其性能、可读性和可维护性,而SQL重构则是针对数据库查询语句进行优化的过程。 在PWMIS系统中,SQL重构主要涉及以下几个方面: 1. **查询优化**:在...

    重构思路浅谈(最后一根稻草型时机)

    《重构思路浅谈:最后一根稻草型时机》 重构,是软件开发过程中不可或缺的一环,旨在提升代码质量,改善系统架构,确保系统的可持续性和稳定性。本文将探讨一种特殊的重构时机——“最后一根稻草”型时机,以及重构...

    浅谈代码覆盖率

    ”  MartinFowler(重构那本书的作者)曾经写过一篇博客来讨论这个问题,他指出:把测试覆盖作为质量目标没有任何意义,而我们应该把它作为一种发现未被测试覆盖的代码的手段。  代码覆盖率的意义  分析未覆盖部分...

    浅谈ORACLE数据库的性能优化.pdf

    DBA需要定期监控系统状态,通过调整参数、优化代码和架构设计来确保数据库的最佳运行状态,满足大量用户的需求,并预防可能出现的性能瓶颈。同时,持续学习和了解最新的Oracle技术及最佳实践,是保持数据库性能...

    浅谈PHP编程习惯.pdf

    8. **代码重构** 随着项目的发展,定期审查和重构代码以优化结构和性能是必不可少的。保持代码的简洁和模块化,可以降低维护成本。 9. **使用版本控制** 使用版本控制系统(如Git)可以跟踪代码更改,方便协作,...

    浅谈初学者应掌握的有关C语言的特殊点.pdf

    当代码的缩进层次超过3层时,应考虑重构代码,避免过度嵌套。 2. **大括号的放置** C语言中,大括号的风格有多种,但K&R(Knuth & Ritchie)风格被广泛推荐。它规定开始的大括号置于行末,结束的大括号置于新行...

    浅谈Oracle数据库系统性能优化策略.pdf

    应用程序优化主要包括SQL查询优化、事务处理逻辑优化和代码重构。优化SQL语句可以避免全表扫描,利用索引,减少I/O操作;优化事务处理可以减少锁定冲突,提高并发性能;代码重构则可以去除不必要的计算和资源消耗,...

    IOI国家集训队论文集1999-2019

    骆 骥 -《由"汽车问题"浅谈深度搜索的一个方面——搜索对象与策略的重要性》 毛子青 -《动态规划算法的优化技巧》 俞 玮 -《基本动态规划问题的扩展》 张一飞 -《求N!的高精度算法》 ## 2002 戴德承 -《退...

    浅谈敏捷开发中的设计.doc

    敏捷开发的设计实践还包括**重构**,在开发过程中不断改进代码结构,以保持代码的可维护性和扩展性。同时,**技术债务**的概念也是敏捷开发中的重要概念,它强调在快速交付的同时,不应忽视长期的技术积累和系统的可...

    浅谈J2me游戏如何快速移植到Android

    ### 浅谈J2me游戏如何快速移植到Android 对于许多从事J2ME开发工作的人员而言,可能会突然间面临一个紧迫的需求:那就是将原本在J2ME平台上的游戏移植到Android平台上。乍一看,这似乎是一项庞大且复杂的工程,但...

    浅谈Oracle数据库性能的优化

    ### 浅谈Oracle数据库性能的优化 #### 一、引言 随着信息技术的快速发展和企业对数据处理需求的增加,数据库作为数据管理的核心组件,在企业的信息化建设中扮演着至关重要的角色。Oracle数据库作为全球最广泛使用...

    浅谈OOP之uml设计模式

    通过学习和实践这些模式,开发者可以更好地理解和重构复杂系统,同时提高代码的可读性和可维护性。UML作为可视化工具,可以帮助团队成员更好地沟通和理解系统设计,从而促进协同开发。因此,无论是初学者还是经验...

    浅谈“三层结构”原理与用意

    3. **可扩展性**:随着业务需求的变化,可以通过增加新的业务层或者调整现有层来扩展系统功能,而无需大规模重构。 4. **复用性**:中间业务层的业务逻辑可以被多个表现层调用,降低了代码重复,提高了代码的复用性...

    浅谈vuex为什么不建议在action中修改state

    - **测试友好**:由于 mutation 是可预测且同步的,它们更容易被测试和重构。 2. commit 与 mutation: - commit 方法内部会调用 `_withCommit` 函数,设置 `_committing` 标志为 true,然后执行 mutation。这...

    浅谈SQL语句解决数据转移.pdf

    - 利用`INSERT INTO SELECT`语句可以简化数据转移的程序代码,提高系统设计人员和工作人员的效率,使他们能更专注于数据库设计和字段设计。 - 随着信息系统的发展,这种数据转移方法可以应用于数据库的升级、调整...

Global site tag (gtag.js) - Google Analytics