面向对象学习史

请不要误会,这个不是在将面向对象发展史。只是说说我和几位同事在聊各自学习面向对象的过程。感觉很有意思。特意拿出来与大家分享。

我最近在思考写一个系列的面向对象的文章。找不到思路,于是请了几位同事,请教他们在学习面向对象过程中的想法。下面是他们的说法。

J君:

  1. 在大学里学的C语言,C++和java是自学的。
  2. 开始是理论派,视面向对象为神圣不可侵犯。
  3. 进入公司后学习Delphi,有些地方不是很习惯,比如接口
  4. 主要工作是做业务模块,经过大量开发过程后,开始感悟面向对象不是一切。
  5. 接触动态语言(python,ruby)和函数式语言(lisp,haskell),开始批判的眼光看面向对象。
  6. 不能为了对象而对象,不是所有原则都是对的,关键在于你能得到什么?

H君: 

  1. 动态:先从继承的概念理解
  2. 静态:慢慢开始用类来组织代码,可以认为是封装的概念 
  3. 关系:和数据库中的表的关系一样,慢慢理解系统是有对象及之间的关系组成的。 
  4. 变化:从设计模式学习开始,慢慢理解系统是变化的,而对象的设计也是针对变化的。 
  5. 思想:面向对象的根本思想,是使用对象这种思维模式去理解整个系统。面向对象,其实是对象面向系统,从而设计对象的独立接口。

S君: 

  1. 大二开始学习面向对象语言C++,对于概念死记硬背 
  2. 理解封装的概念 
  3. 认为对象是IT行业中,用来描述系统的元素,就像几何中的点线面一样。都是一些概念。
  4. 深入Delphi的VCL,对对象的理解深入
  5. 感觉对象关系比较简单,程序员看的世界都这么简单,其实有坏处。最好从其他系统中介入。

L君: 

  1. 大学时候没有学习面向对象语言
  2. 所有思想都是从Delphi开始接受,其实就是进入公司后开始学习的。 
  3. 由于没有面向过程语言的困扰,所有的面向对象思想,都顺其自然地接受,认为天然如此而已。

一开始的时候,我还给我的系列,命名为《Inside Object》,我发现,其实大家很多时候都是从一个Outer到另一个Outer。开玩笑地讲,说不定以后又会想写《Out Of Object》系列了。不过,那是后话了。

观察上面的,有一个共同的情况,那就是面向对象并不是一开始就能接受的。往往需要通过好几年的反复才能深入理解。在S君刚上面向对象课程的时候,他的老师就非常明智地指出,你们一开始不可能理解得了面向对象,现在你们所需要着的是,记住他们!

另外,我们也应该关注到,我们在和人沟通面向对象思想的时候,需要注意到理解的层次。而如果我们愿意帮助别人在这方面成长,是否也要关注学习的阶梯呢?

说是学习史,其实更是想和大家一起讨论一下如何来学习面向对象思想。欢迎大家反馈,说说你们的学习心得。

 

posted on 2007-03-09 13:21  ohmyjava  阅读(123)  评论(0编辑  收藏  举报

导航