1.重构
对软件内部结构的一种调整,目的是在不改变软件可观察行为的前提下,提供起可理解性,降低其修改成本。重构是“整理代码吗”,其实整理代码是重构的第一步,首先你要把字面尚的一些不规范调整过来。
2.属性控制内置
对于一个对象自身的属性,控制权需要交给这个自身对象控制。尽量不要交给外部对象控制。
比如有一个book对象,书的发布状态的判断,尽量交给这个book的method来处理,而尽量不要在外部函数调用时,进行书的发布状态判断。
2.条件判断转为state模式
3.通过子类隔离变化
4.修改接口
修改接口时,对于那些完全在你自己函数中调用的,你可以随便改。但是对于那些,已经发布的或者别其他不能修改的模块代码调用的接口,就不能随便修改接口了。正确的姿势应该是老接口调用旧接口,同样应该使用java中的deprecated,这么,其他调用者就会注意到它。同样,不能接口的函数实现,那么将出现重复代码。
5.无法进行重构的系统
无法重构的时候,就需要进行重写了,重写的讯号,现有代码根本不能正常运作了。重写的一个方法:将“大块头软件”重构为封装良好的小型组件。然后再逐一对组件作出“重构或者重写”的决定。
6.代码的坏味道
duplicated code(重复代码),long method(过长函数),large class(过大的类),long parameter list(过长参数列),shotgun surgery(霰弹式修改) lazy class ,speculative generality(夸夸其谈未来性,这是最近做项目想犯的错误,如果所有的装置都会被用到,那就值得做,如果用不到,那就不值得),
7.重构方法
阅读《重构_改善既有代码的设计》
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...