怎样理解面向对象

来源:互联网 发布:简单平面图制作软件 编辑:程序博客网 时间:2024/06/03 20:27
      一般,面向过程写的代码,应该会比较详细的分单元文件的对吧?如果您的习惯也是如此的话,那么可以按照一个单元文件的方向思考。比如,把一个具体化的、相似的功能,写在一个单元文件中。然后从这个单元文件中提取成一个类结构,用到的全局变量是类的成员,用到的函数是类的方法。这样可以简单的组合成一个类。然后去掉这个单元文件,将类的整体放入一个更大的单元。测试代码从另外一个地方写,采用直接创建类对象的方式测试。如此一来,您可以写出第一个类对象了。不过,这样的类对象还不包含任何类的优势,主要的原因是,您目前只是把面向单元的过程代码整理在一个类框架下面了,并没有使用到任何多态、继承这两个更重要的要素(目前把单元文件变成类的做法,就是封装)。这个时候您可以仔细思考目前这个类的架构。比如,假设您从一个处理文件的单元文件中提取出了一个CFileStream类,那么此刻您可以往更高的抽象层次思考,首先文件流主要操作的是文件数据,读取数据到Buffer,从Buffer写入数据进去。那么这个读写实际上不仅仅对文件有用,可以对内存,对网络都有用。所以从这里,您应该可以提取出读写函数的抽象行为,于是往CFileStream上提取一个父类,只负责读写的函数声明,于是抽象的CStream就出来了。从这个父类开始,可以向下继承CMemoryStream,甚至CSocketStream等。这样慢慢前进,您就能体会到面向对象的优势了。
0 0
原创粉丝点击