面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发
2012-11-08 16:02
225 查看
思维方法
范凯是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。
范凯对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思路上去。
举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。然后考虑用Java来实现,既然是OOP,就不能什么代码都塞到main过程里面,于是就设计了三个类:
一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送;
一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;
一个主类负责从命令读参数,处理命令行参数,调用发email的类。
把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。
仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。这样的分析方法其实是不适用于Java这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比Java实现起来轻松的多,逻辑上也清楚的多。
范凯觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。
相关文章推荐
- 3.如何用面向对象的思维考虑问题
- 学友来函005:用面向对象的思想去考虑现实生活中的问题
- 解决问题的思维习惯
- 面向对象的思维解决问题
- 双赢的思维考虑问题
- zoj 3407 Doraemon's Cake Machine (思维不能太狭隘了 ,从各个方面考虑问题)
- 贪心算法之活动选择问题--求解现实问题的思路
- 思考问题的本质--有关提炼总结的思维习惯
- 通过作文训练儿童主动思维问题的能力和习惯。
- 为什么,一个思维方式的问题,一个习惯的问题,已经意识到了这一点,
- 建议转变编程时的思维习惯改为:忽略细节关扰,直指问题核心,追寻问题关键。
- 从使用Python开发一个Socket示例说到开发者的思维和习惯问题
- 从使用Python开发一个Socket示例说到开发者的思维和习惯问题 推荐
- boj problem 1331 思路:快排分块 按块查找 问题:全局数组时可以定义到500W的 main函数下的数组不行~ 另外c语言比c++快 TLE可以考虑C~~具体原因待解决
- 数据模型——从现实世界到信息世界——再到物理世界(设计数据库的整体思路)
- 浅谈OOP与现实世界之间关系(面向对象的特征)
- 从使用Python开发一个Socket示例说到开发者的思维和习惯问题
- 写程序时细心,全方位+逆向思维考虑问题
- 从使用Python开发一个Socket示例说到开发者的思维和习惯问题 - 突破中的IT结构师 - 51CTO技术博客
- hibernate3.0发现在海量数据表中查询很慢 ,不在于问题,在于解决问题的思路啊,学习了