博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
重构和增加功能
阅读量:2229 次
发布时间:2019-05-09

本文共 500 字,大约阅读时间需要 1 分钟。

重构和增加功能 

 黄国强 2004年09月16日                                 

    今天有一位同事问到一些开发的问题,我认为比较典型,故写上一段短文,希望能给大家一点启发。
    我们遇到软件增加功能的时候,传统的方法是拿过源代码直接动手修改。这本身亦无可厚非,一般都是这样。但如果我们换个角度,从敏捷开发方法的角度考虑,却大有问题。因为直接修改代码本身有一个可怕的后果,就是引入bug,原先正常运转的功能面临被破坏的危险。
    敏捷开发方法以快速响应用户需求和提供高质量的产品而博的广泛的赞誉。从这个角度分析,上述增加功能的行为应该由两部分步骤构成,即重构和OCP扩展。我们看一下重构的定义。重构即在不改变现有功能的情况下修改现有代码。而OCP(开闭原则)的定义是在不改变现有代码的情况下,扩展软件功能。
    所以,第一步我们改代码的时候千万不要引入新的功能。重构的目的是在增加新的功能的时候不用更改现有的哪怕一行代码。第二步OCP扩展阶段则用继承的方式增加新的类来扩展软件的功能,从而达到在不修改现有代码的情况下扩展软件功能的目的。
    好像有点过于理想化了,不过尽量把握这个原则,才能使我们有可能开发出高质量的软件产品。否则必然陷入泥潭而不能自拔。

转载地址:http://wmefb.baihongyu.com/

你可能感兴趣的文章
【数据库】关系数据库和非关系数据库的优缺点
查看>>
【数据结构】动态顺序表
查看>>
Markdown的基础使用
查看>>
Linux基础命令
查看>>
【C语言】交换两个数值的三种方法
查看>>
【数据结构】栈的简单理解以及对栈的基本操作
查看>>
【数据结构】简单不带环迷宫的实现(用栈实现)
查看>>
【C语言】简单的了解递归(求斐波那契,n的阶乘,字符串长度,把一个整型(无符号),转化为字符型并打印出来)
查看>>
【数据结构】动态栈的实现
查看>>
【数据结构】简单的迷宫(用递归实现)
查看>>
【数据结构】队列的基本认识和队列的基本操作
查看>>
【数据结构】循环队列的认识和基本操作
查看>>
【LeetCode】无重复字符的最长子串
查看>>
时间复杂度
查看>>
【C++】动态内存管理 new和delete的理解
查看>>
【Linux】了解根目录下每个文件的作用
查看>>
【Linux】进程的理解(一)
查看>>
【Linux】进程的理解(二)
查看>>
【C语言】深度理解函数的调用(栈帧)
查看>>
【Linux】进程的理解(三)
查看>>