24小时热门版块排行榜    

查看: 431  |  回复: 0
当前主题已经存档。

dayv

木虫 (小有名气)

[交流] 什么是软件重构(Refactoring)

什么是Refactoring?

每个人似乎都有自己的Refactoring的定义,尽管他们讲的就是同一件事情。在那么多的定义中,最先对Refactoring进行理论研究的Raloh Johnson的话显然更有说服力:
Refactoring是使用各种手段重新整理一个对象设计的过程,目的是为了让设计更加灵活并且/或者更可重用。你可能有几个理由来做这件事情,其中效率和可维护性可能是最重要的原因。
Martin Fowler[Fowler]把Refactoring定义为两部分,一部分为名词形式:
Refactoring(名词): 在不改变可观察行为的前提下,对软件内部结构的改变,目的是使它更易于理解并且能够更廉价地进行改变。
另一部分则是动词形式:
Refactor(动词): 通过应用一系列不改变软件可观察行为的refactoring来重构一个软件。Martin Fowler的名词形式就是说Refactoring是对软件内部结构的改变,这种改变的前提是不能改变程序的可观察的行为,这种改变的目的就是为了让它更容易理解,更容易被修改。动词形式则突出Refactor是一种软件重构行为,这种重构的方法就是应用一系列的refactoring。
软件结构可以因为各种各样的原因而被改变,如进行打印美化、性能优化等等,但只有出于可理解性、可修改、可维护目的的改变才是Refactoring。这种改变必须保持可观察的行为,按照Martin的话来说,就是Refactoring之前软件实现什么功能,之后照样实现什么功能。任何用户,不管是终端用户还是其他的程序员,都不需要知道某些东西发生了变化。

[ Last edited by 幻影无痕 on 2006-11-13 at 08:13 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 dayv 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 接收调剂 +6 津萌津萌 2026-03-02 13/650 2026-03-02 18:34 by fengyuling00
[考研] 材料085601调剂 +3 多多子. 2026-03-02 3/150 2026-03-02 17:37 by yeahyou
[考研] 环境调剂 +3 chenhanheng 2026-03-02 3/150 2026-03-02 17:37 by houyaoxu
[考研] 289求调剂 +3 BrightLL 2026-03-02 3/150 2026-03-02 17:28 by 杨杨杨紫
[考研] 085600求调剂 +3 LRZZZZZZ 2026-03-02 3/150 2026-03-02 16:58 by zeng1010
[考研] 考研复试调剂,过国家线的同学都可报名 +4 黑!在干嘛 2026-02-28 5/250 2026-03-02 16:48 by chock1337
[考研] 材料284求调剂,一志愿郑州大学英一数二专硕 +12 想上岸的土拨鼠 2026-02-28 12/600 2026-03-02 16:18 by youmomaoyan
[考研] 材料工程专硕283求调剂 5+4 ,!? 2026-03-02 6/300 2026-03-02 11:07 by 黑!在干嘛
[考研] 281求调剂 +5 2026计算机_诚心 2026-03-01 8/400 2026-03-02 11:05 by 汪!?!
[考研] 0856材料与化工,270求调剂 +8 YXCT 2026-03-01 9/450 2026-03-02 11:01 by 无际的草原
[考研] 材料调剂 +6 爱擦汗的可乐冰 2026-02-28 7/350 2026-03-02 10:42 by Jy?
[考研] 275求调剂 +3 L-xin? 2026-03-01 6/300 2026-03-02 10:22 by 热情沙漠
[考研] 0854复试调剂 276 +4 wmm9 2026-03-01 6/300 2026-03-02 09:28 by 热情沙漠
[考研] 279求调剂 +3 dua1 2026-03-01 4/200 2026-03-02 00:23 by 大脸蛋子
[基金申请] 本子写完了,给DS兄弟看了,得了92分 +3 Doma 2026-03-01 7/350 2026-03-02 00:00 by jnzsy
[考研] 272求调剂 +6 田智友 2026-02-28 6/300 2026-03-01 21:40 by 公瑾逍遥
[考研] 0856求调剂285 +10 吕仔龙 2026-02-28 10/500 2026-03-01 21:37 by 公瑾逍遥
[考研] 304求调剂 +6 曼殊2266 2026-02-28 7/350 2026-03-01 15:14 by wjLi2017
[考研] 295复试调剂 +3 简木ChuFront 2026-03-01 3/150 2026-03-01 14:27 by zzxw520th
[考研] 307求调剂 +4 73372112 2026-02-28 6/300 2026-03-01 00:04 by ll247
信息提示
请填处理意见