C++--浅谈开发系统的经验
最近写了不少类了,从垃圾代码爬坑,虽然还是很垃圾,但是照葫芦画瓢,有几分神韵。在这里总结一下,写类的经验教训。
第一步 分析:
当拿到一个要求时,要先去考虑怎样一个类到底该实现什么样的功能,有什么样的数据,简而言之,就是分析。该用什么方式组织数据,达到解决一类问题的方式,在分析结束后脑子里会有一个大概的框架,在通过分析后将每个类的应该有的数据,与操作写出来,这个时候不需要写出具体实现方式,而是为后续写类,搭建一个框架,分析时也要注意面向对象封装的特点,一一定要注意数据与操作的分离,这样让每个类成为一种的独立的类型,而不是数据操作混用,每个类都不能独立的解决一些问题,这样的代码复用性差,所以还是按照老师讲的数据类与操作类清晰的分离,到这里一个比较明确的思路就可以的出来。
第二步 补充操作使类完整
这一步,包括代码的实现与调试,之前的时候写代码是一气呵成,那时候还不太明白什么是写一个功能调一个功能,指导有一次通讯录管理系统最后跑不出来,也不报错,但是就是不按自己想法出结果,于是,从头开始往另一个CPP文件里粘代码,一个函数一个函数的粘贴,这样一个函数一个函数的调试,于是300行的代码硬硬的调了快两个小时,才明白什么是写一个功能调试一个,不是写完一整个程序调试一遍,也不是写完一个类调一遍,这个功能就是对每一个要起到作用而函数,进行测试,可想而知要是1000行的代码出现了问题,不是从头开始写一个,调一个的话,要是找错误的话,跟直接从新写没有太大区别。所以写一个调试一个,看似增加了写代码的时间,实际上是减少了调试代码的时间,更重要的是降低调试代码的复杂度。
应该具备的素质
面向对象编程,要注意封装继承多态,写出更具有通用性的代码,提高代码的复用率,就是减少重复代码的出现次数,比如图书馆管理系统的管理端与用户端有着同样的查询操作,如果不采用继承的方式写,就会少写很多代码,既可以减少代码的长度,又能使类更加明了,但是一般说上来就知道那两个类可以继承,是不太现实的,一般是当第一部完成后,发现两个类的功能有大量重叠,抽出重叠部分,形成一个基类,再由两个类继承。多态是为了提高类的封装性,将一个接口通过动态的方式确定调用具体哪一项操作,应用程序不必为每一个派生类编写功能调用,只需要对抽象基类进行处理即可。大大提高程序的可复用性。派生类的功能可以被基类的方法或引用变量所调用,这叫向后兼容,可以提高可扩充性和可维护性。 所以熟练的使用虚函数使提高类的封装性的方法。
我认为就是根据不同的情况调用指向不同派生类的指针而使得可以调用不同的参数,可以通过键盘上敲的值动态的确定要调用那个函数。
最后一点
作为一名程序monkey,写出的代码不只是给自己的看的,应该让别人也看懂,吃过的亏是写代码是每个成员变量是a,b,c不是上学期那么短的代码,数据少,现在数据多,所以命名一定有意义,一来是让别人看的懂,其次让自己调代码时也更加方便,然后是,写代码的时候,一定要类内声明,类外定义,写一摊,不能明确看出到底有哪些函数,有哪些功能,再根据函数、功能去找代码,这样更方便,与明了。
虽然,我们也没学什么设计模式,软件工程什么什么的,但是很多老师讲了的知识就一定要会。上学期的时候Fls不让写注释,上学期代码短,一眼就看出来了,这学期开始时不写注释,写出的代码不尽人意,因为思路突然就中断了,这是干嘛的,什么作用什么功能?所以我觉得适当的明了的注释应该是可以有的,目前水平还很低,这是自己接触的第一门语言,估计这应该是大学三年用的比较多的语言了,所以还要继续努力。