
重构
wb175208
这个作者很懒,什么都没留下…
展开
-
重构软件设计
作为一个程序员在写了很多年的程序代码,回过头来看之前写的代码,我相信很大一部分人会说:“我靠,写的这么烂,这是我写的吗?当时是不是脑子进水了,怎么会这样写代码?”自己肯定会对着自己的代码暗暗发笑。随着时间的增长,随着自己写代码的数量的增多,自己的编程经验也随着增多,对各种设计模式、各种设计原则的应用与理解;对面向对象技术深入理解,自己写的代码的质量也越来越高,可复用和可扩展性也越来越灵活。在编...原创 2018-10-16 00:12:11 · 652 阅读 · 0 评论 -
重构-重新提炼函数
当看到一个函数定义过长时或者这段函数需要很多注释才能让人理解的时候,这时候就要考虑是不是把这个函数的部分代码提取出来,形成一个新的函数,方便调用和理解。也就是减小函数的粒度。void printInfo() { printf("name:", _name); printf("sex:", _sex); printf("math:", _math); printf("english:",...原创 2018-10-16 22:05:08 · 633 阅读 · 0 评论 -
重构-过多的变化和过度依赖
过多的变化我们总是希望自己写的软件是“高内聚、低耦合”的,所谓耦合指的是两个类或者多个类之间的关系,当一个类发生变化的,其他的类同时也会发生变化。而我们希望的是,类与类之间关系尽量避开这样变化。而是当其中一个类发生变化时,与其他的类不受影响。也就是说变化只发生在自己的内部,这就是高内聚。以上是类与类之间的关系。那么一个类内部之间会不会也会有这样的变化呢?也就是当我们给这个类添加一个新的功...原创 2018-10-22 23:11:19 · 320 阅读 · 0 评论 -
重构-关于整个项目的重构
常见的项目重构的方法:梳理并且分解继承体系:继承是面向对象设计语言中一个很重要的特性,特可以减少子类的代码量。同时继承也会被误用。今天为了一个功能添加了一个小类,也许明天还会为了另外一个功能添加另外一个类。时间一长你就会发现,这个类简直就是惨不忍睹。代码会出现大量的重复,而且修改也会变得很困难。要修改这个类就要把这个类中相关的变量或者功能梳理清楚,分别给他们建立相应的父类,然后在继承下去。他...原创 2018-10-22 23:38:05 · 2001 阅读 · 0 评论 -
重构-提取重复的代码
在编写程序过程中,特别是刚刚入行没有多久的程序员,经常会犯的一个错误就是大段大段的复制粘贴代码。把功能相近的代码直接复制过来而不加以修改。这个习惯也许来源于你的老师也许来源于你本身的原因。总之,对于这一类程序员最好的设计模式就是“Ctrl+C(复制)”和“Ctrl+V(粘贴)”。但是复制代码虽然在一定程度上提高了编程的速度,但是更多的是带来了不可预计的问题:若要修改这个功能的代码,却只修改了一部...原创 2018-10-20 23:34:47 · 5648 阅读 · 0 评论 -
重构-过大的类
在面向对象的设计程序中,有个“单一职责”原则,也就是说,这个类的功能比较单一,只做一件事情,而且引起这个类对象变化也是唯一的。说白了就是一个类只干一件事情,而且引起这个发生变化的接口也只有一个。如果判断一个类是过大呢?一个简单的办法就是:这个类中的变量太多了,而且这些变量的含义功能优势多方面的。出现这种情况就要考虑要把这个类分成几个小类了。提炼的时候,尽量把类内相关的变量放到一起。比如长方向...原创 2018-10-21 16:16:25 · 1189 阅读 · 0 评论 -
软件设计开发中经常出现的一些问题
在面向对象开发过程中,由于设计者的水平和业务需求的变动,软件设计中出现这样或者那样的问题,下面就是一些经常出现的问题:对于软件中任何一部分的改动,都会引起其他多个模块的连锁改动。改动的越多,就越说明软件的设计有问题。改动程序中的一小部分代码,程序的许多部分都会出现问题,这样的程序非常脆弱。软件中通常包含一些公共的部分,而这些公共的部分如果要分离出来需要的努力和风险很巨大,也就是这部分代码和...原创 2018-12-03 23:20:39 · 2580 阅读 · 0 评论 -
我为什么要重构运行稳定的代码?
假如有一个项目在客户的手里运行的很稳定,也比较满足客户提出的需求,后期会根据客户的要求在添加一些新的功能,但是把项目代码拿到手里之后我还是忍不住要重构其中的代码。项目需要重构的原因不外乎有以下几种原因:一、没有实现客户的所要求的的功能这个是主要的原因,开发的软件运行的再好,如果没有达到客户的要求就等于做了无用功,这个项目也是没有价值的。还需要根据客户的需求继续添加修改代码以实现客户要求的功能...原创 2018-12-10 13:38:04 · 348 阅读 · 0 评论