你的位置:首页 > ASP.net教程

[ASP.net教程]【重构学习】11 大型重构


好了,前面所有的都是很简单的例子,现在开始的是大型重构。

对于大型重构来说,情况复杂多变,耗时也会很长,前面的简单重构大多是在一个小时内可以完成,但是对于大型重构来说可能需要几个月,甚至数年。如果是一个运行中的系统,重构起来只能每天一点点去慢慢重构。

(恕我直言,在国内恐怕这样的公司也很少。所以我们要自己养成随时重构的习惯,不要挖坑给自己埋最好。没谁能给你这么长时间重构,特别当你是个低端程序员的时候。你得相信,你所有偷懒的举动,都会给你以后的工作带来麻烦。除非你明天走人了,那么你的锅可能就给我背了,等你到了新的公司,你又发现你也成了一个背锅的。)

1、梳理并分解继承体系

修改点:某个继承体系同时承担两个责任。如果继承体系中的某一特定层级上的所有类,其子类名称都以相同的形容词开始,那么这个体系很可能就是承担着两项不同的责任。

做法:建立两个继承体系,并通过委托关系让其中一个可以调用另一个。

动机:混乱的继承体系会导致重复代码。

好吧,简单来说,你可以理解为桥接模式。

2、将过程化设计转为对象设计

修改点:就是出现了C语言式的代码

做法:将数据记录变为对象,将大块的行为分成小块,并将行为移至相关对象中。

3、将领域和表述/显示分离

修改点:某些GUI类中包含了业务逻辑

做法:将领域逻辑分离出来,并为它们建立独立的领域类

4、提炼继承体系

修改点:你为某个类做了太多工作,其中一部分以大量条件表达式完成

做法:建立一个继承体系,以一个子类表示一种特殊情况

 

小总结:

好吧,上面四个点写得很概括,但是其实包括了很多东西。

越复杂的东西反而讲起来越简单。

就像我说我们来写个注册系统吧,多简单,但是实施起来其实也不简单。

很多时候我们都不愿意去改别人的代码,因为可能业务就已经很复杂了,再加上可能他也写得烂。

你唯一必须做的是,至少保证自己的代码别人维护起来很轻松,与君共勉吧!