面向对象的思维方法
作者:范凯
我是从学习 编程开始接触 面向对象编程,刚开始使用 编写程序的时候感觉很别扭,因为我早以习惯用 来
编写程序,很欣赏 的简洁性和高效性,喜欢 简练而表达能力丰富的风格,特别忍受不了 运行起来慢吞吞的速度,相
对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用一个类,心里的抵触情绪很强。
我对 的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用 风格来写程序,然而还是经常会觉得不知
道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思
路上去。
举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用 来写的话,一般会这样思考,先把邮件内容读入,然后连
接数据库,循环取邮件地址,调用本机的 的 命令发送。
然后考虑用 来实现,既然是 ,就不能什么代码都塞到 过程里面,于是就设计了三个类:
一个类是负责读取数据库,取邮件地址,调用 的 命令发送;
一个类是读邮件内容, 编码成 !"# 格式的,再加上邮件头;
一个主类负责从命令读参数,处理命令行参数,调用发 的类。
把一件工作按照功能划分为 $ 个模块分别处理,每个类完成一件模块任务。
仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,
从机器的角度到现实世界的角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层
实现程序这样的出发点来达到满足现实世界的软件需求的目标。
这样的分析方法其实是不适用于 这样面向对象的编程语言,因为,如果改用 语言,封装两个 函数,都会比 实
现起来轻松的多,逻辑上也清楚的多。
我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思
维方法。
举一个非常简单的例子:假使现在需要写一个网页计数器,客户访问一次页面,网页计数器加 %,计数器是这样来访问的
代码
% &&'((&()&*+,---..