怎样理解面向对象

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值