信息系统项目管理师_2024年软考学习应考交流_信息系统项目管理师考试

 找回密码
 马上注册

QQ登录

只需一步,快速开始

查看: 9893|回复: 20
打印 上一主题 下一主题

关于面向对象的一些思考

[复制链接]
  • TA的每日心情
    开心
    2016-1-18 12:18
  • 签到天数: 117 天

    [LV.6]常住居民II

    跳转到指定楼层
    楼主
    发表于 2008-11-4 00:06:57 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
      面向对象方法被人谈论了二十多年了。我接触它比较晚,直到九十年代中期才开始学习使用它。若说对这个方法做些评价,那还真是大言不惭了。不过这么些年来,也周期性的对面向对象做些思考。或对或错,我想都值得总结一下。一家之言,来看的同学不必太当真。
      首先我们要区分一下“基于对象”和“面向对象”的区别。
      基于对象,通常指的是对数据的封装,以及提供一组方法对封装过的数据操作。比如 C 的 IO 库中的 FILE * 就可以看成是基于对象的。
      面向对象,则在基于对象的基础上增加了多态性。所谓多态,就是可以用统一的方法对不同的对象进行同样的操作。当然,这些对象不能完全不同,而需要有一些共性,只有存在了这些共性才可能用同样的方法去操作它们。我们从 C++ 通常的实现方法的角度来看,A 和 B 在继承关系上都有共同的祖先 R ,那么我们就可以把 A 和 B 都用对待 R 的控制方法去控制它们。
      为什么需要这样做?
      回到一个古老的话题:程序是什么?
      程序 = 算法 + 数据结构
      在计算机的世界里,数据就是一个个比特的组合;代码的执行流程就是顺序、分支、循环的程序结构的组合。用计算机解决问题,就是用程序结构的组合去重新排列数据的组合,得到结果。为了从庞大的输入数据(从 bit 的角度上看,任何输入数据都可能非常的庞大),通过代码映射到结果数据。我们就必须用合理的数据结构把这些比特数据组合起来,形成数量更少的单元。
      这些单元,就是对象。对象同时也包括了对它进行操作的方法。这样,我们完成了一次封装,就变成了:
      程序 = 基于对象操作的算法 + 以对象为最小单位的数据结构
      封装总是为了减少操作粒度,数据结构上的封装导致了数据数据的减少,自然减少了问题求解的复杂度;对代码的封装使得代码得以复用,减少了代码的体积,同样使问题简化。
      接下来来看 基于对象操作的算法。这种算法必须将操作对象看成是同样的东西。在没有对象的层次上,算法操作的都是字节,是同类。但是到了对象的层次,就不一定相同了。这个时候,算法操作的是一个抽象概念的集合。
      在面向对象的程序设计中,我们便少不了容器。容器就用来存放一类有共同抽象概念的东西。这里说有共同概念的东西,而没有说对象。是因为对于算法作用于的集合,里面放的并不是对象实体,而是一个对实体的引用。这个引用表达的是,算法可以对引用的那一头的东西做些什么,而并不要求那一头是什么。
    踩过的脚印
    分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
    收藏收藏 转播转播 分享分享 顶 踩
  • TA的每日心情

    2014-2-18 08:44
  • 签到天数: 21 天

    [LV.4]偶尔看看III

    升级  0.01%

    21
    发表于 2011-8-7 23:03:09 | 只看该作者
    写得好啊 估计有马甲  

    该用户从未签到

    升级  0.1%

    20
    发表于 2011-8-1 23:16:12 | 只看该作者
    楼主福如东海,万寿无疆!  
  • TA的每日心情
    擦汗
    2011-7-16 08:12
  • 签到天数: 1 天

    [LV.1]初来乍到

    升级  0.1%

    19
    发表于 2011-8-1 23:16:12 | 只看该作者
    长时间没来看了 ~~  

    该用户从未签到

    升级  0.02%

    18
    发表于 2011-8-1 23:16:12 | 只看该作者
    说的真有道理啊!
  • TA的每日心情

    2011-7-31 07:41
  • 签到天数: 1 天

    [LV.1]初来乍到

    升级  0.1%

    17
    发表于 2011-7-27 00:30:48 | 只看该作者
    我的妈呀,爱死你了  

    该用户从未签到

    升级  0.1%

    16
    发表于 2011-7-27 00:30:48 | 只看该作者
    呵呵,找个机会...  
  • TA的每日心情

    1312069281
  • 签到天数: 1 天

    升级  0.1%

    15
    发表于 2011-7-27 00:30:48 | 只看该作者
    严重支持!

    该用户从未签到

    升级  0.1%

    14
    发表于 2011-7-24 11:30:52 | 只看该作者
    多次欣赏,每一次都有一番震撼~   

    该用户从未签到

    升级  0.1%

    13
    发表于 2011-7-24 11:30:52 | 只看该作者
    写得好啊 估计有马甲  
    您需要登录后才可以回帖 登录 | 马上注册

    本版积分规则

    小黑屋|手机版|Archiver|信息系统项目管理师_软考交流平台. ( 鄂ICP备11002878号-1  公安备案号:42011102001150

    GMT+8, 2025-7-6 13:49

    Software by Discuz! X3.2

    © 2001-2013 SKIN BY DSVUE

    快速回复 返回顶部 返回列表