一直以来,重写、重载、重用、重构四个概念比较容易混淆,现在详细记录一下这四个概念。

重写:一般在面向对象编程语言中重写指的是方法重写,方法重写又称方法覆盖,就是子类可继承父类中的方法,而不需要重新编写相同的方法。但有时子类并不想原封不动地继承父类的方法,厕是想作一定的修改,这就需要对方法进行重写。若子类中的方法与父类中的某一方法具有相同的方法名、返回类型和参数,则新方法将覆盖原有的方法。

重载:在面向对象编程中分为方法重载和运算符重载。方法重载是让类以统一的方式处理不同类型数据的一种手段。使用重载方法,可以在类中创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义。调用方法时,通过传递给它们的不同个数和类型的参数来决定具体使用哪个方法。运算符重载就是对已有的运算符重新进行定义,赋予其另一种功能,以适应不同的数据类型。

重用:代码复用,也被称作软件复用。就是利用已有的代码,或者相关的知识去编写新的代码来构造软件,可以为软件的编写或工程的进展节省很多时间。

重构:(Refactoring)就是在不改变软件现有功能的基础上,通过调整程序代码改善软件的质量、性能,使其程序的设计模式和架构更趋合理,提高软件的扩展性和维护性。 也许有人会问,为什么不在项目开始时多花些时间把设计做好,而要以后花时间来重构呢?要知道一个完美得可以预见未来任何变化的设计,或一个灵活得可以容纳任何扩展的设计是不存在的。系统设计人员对即将着手的项目往往只能从大方向予以把控,而无法知道每个细枝末节,其次永远不变的就是变化,提出需求的用户往往要在软件成型后,才开始"品头论足",系统设计人员毕竟不是先知先觉的神仙,功能的变化导致设计的调整再所难免。所以"测试为先,持续重构"作为良好开发习惯被越来越多的人所采纳,测试和重构像黄河的护堤,成为保证软件质量的法宝。[参见:http://baike.baidu.com/view/5310022.htm?fr=wordsearch

posted on 2018-03-15 18:35  贺老爷  阅读(1160)  评论(0编辑  收藏  举报