OO随想

来源:互联网 发布:时尚大码女装淘宝店 编辑:程序博客网 时间:2024/04/30 01:55

    最近看了周爱民先生写的<<大道至简>>感触颇深,其中有一断他与Soul(王昊)的对话印象尤其深刻这让我重新思考了OO,他到底是什么,他倒底能为系统开发带来什么好处。

  

    要知道,操作系统是在面向过程的时代的产生的,航天飞机也是在那个时代飞上天的,这说明在面向过程时代并不缺乏优秀的软件系统,甚至可以说最优秀的系统还是在那个时代产生的,从他们的对话中我们也可以看出,从系统底层的角度来讲,CPU执行是顺序执行的,对内存的存取也是顺序,还有windwos的消息机制,这些都是与面向对象的思想不相兼容的。

 

     不知道学过C语言的然后再转Java等一些面向对象的语言的人是不是有这个一种感觉,在刚开看java代码很痛苦,类中嵌套的类,一层委托一层,很容易在代码中迷失,根本不知道程序倒底是怎么执行的。

  

    其实这就是面向过程和面向对象最重要的区别,面向过程注重的流程的顺序性,他更符合系统底层和硬件上的特性,他对程序员的技能要求较高,需要对操作系统,数据结构等要有一定深入的了解,因此面向过程时代也是一个英雄辈出的时代,很多轰动的事情就是在那个时代出来的,而面向对象更注重的是描述现实中事物之间的关系和协作,注重的是对现实世界的封装,可以减少理解实现细节的烦恼,他更符合的人的一种自然思维,你说谁不愿意偷点懒呢?

    

       此个人认为看Java源代码时,一开始要看作者的架构思路,要从接口看起,要明白接口描述功能,理清接口之间的关系然后再看实现代码就容易的多了。面向对象对系统开发带来的直接好处是使复杂系统变的更简单,通过封装,继承等机制,提高系统的重用度,减少系统的代码量,而且很多系统之间是有很多共性的,把这些共性抽取加以封装,就成框架了,像struts,spring,hibernate等,很多程序员要做的就是在这些框架上做一些具体商业逻辑的一些实现就可以了,而根本无需了解一些底层的实现,这就降低了程序员入门的门槛了,这也就是为什么程序员的身价年年下降的原因了,其实这也是面向对象带来的另一个好处,开发成本降底了,所以说做程序员命苦啊!!!!

原创粉丝点击