1 / 5
文档名称:

面向对象的思维方法.doc

格式:doc   页数:5页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

面向对象的思维方法.doc

上传人:xxj16588 2016/4/29 文件大小:0 KB

下载得到文件列表

面向对象的思维方法.doc

文档介绍

文档介绍:面向对象的思维方法发表时间: 2004-8-10 作者:未知[获得此文档时候没有作者记录,深感抱歉,本文档全为转载] 作者:范凯 E-mail: robbin_fan@ 我是从学****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 实现起来轻松的多,逻辑上也清楚的多。我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维****惯出发的,只要领会了这一点,就领会了面向对象的思维方法。举一个非常简单的例子:假使现在需要写一个网页计数器,客户访问一次页面,网页计数器加 1, 计数器是这样来访问的 http://hostname/?id=xxx 后台有一个数据库表,保存每个 id(一个 id对应一个被统计访问次数的页面)的计数器当前值, 请求页面一次,对应 id的计数器的字段加 1(这里我们忽略并发更新数据库表, 出现的表锁定的问题)。如果按照一般从程序实现的角度来分析,我们会这样考虑:首先是从 HTTP GET 请求取到 id,然后按照 id查数据库表,获得某 id对应的访问计数值,然后加 1,更新数据库,最后向页面显示访问计数。现在假设一个没有程序设计经验的人,他会怎样来思考这个问题的呢?他会提出什么样的需求呢?他很可能会这样想:我需要有一个计数器,这个计数器应该有这样的功能,刷新一次页面,访问量就会加 1,另外最好还有一个计数器清 0的功能,当然计数器如果有一个可以设为任意值的功能的话,我就可以***了。做为一个没有程序设计经验的人来说,他完全不