首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

面向对象的思想方法 (转)

2012-08-31 
面向对象的思维方法 (转)p我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候

面向对象的思维方法 (转)
<p>我是从学习Java编程开始接触OOP(面向对象编程),刚开始使用Java编写程序的时候感觉很别扭,因为我早以习惯用C来编写程序,很欣赏C的简洁性
和高效性,喜欢C简练而表达能力丰富的风格,特别忍受不了Java运行起来慢吞吞的速度,相对冗长的代码,而且一个很简单的事情,要写好多类,一个类调用
一个类,心里的抵触情绪很强。
<br><br>
我对Java的面向对象的特性琢磨良久,自认为有所领悟,也开始有意识的运用OOP风格来写程序,然而还是经常会觉得不知道应该怎样提炼类,面对一个具体的问题的时候,会觉得脑子里千头万绪的,不知道怎么下手,一不小心,又会回到原来的思路上去。
<br><br>
举个例子,要发广告邮件,广告邮件列表存在数据库里面。倘若用C来写的话,一般会这样思考,先把邮件内容读入,然后连接数据库,循环取邮件地址,调用本机的qmail的sendmail命令发送。
<br><br>
然后考虑用Java来实现,既然是OOP,就不能什么代码都塞到main过程里面,于是就设计了三个类:
<br><br>
一个类是负责读取数据库,取邮件地址,调用qmail的sendmail命令发送;
<br>
一个类是读邮件内容,MIME编码成HTML格式的,再加上邮件头;
<br>
一个主类负责从命令读参数,处理命令行参数,调用发email的类。
<br><br>
把一件工作按照功能划分为3个模块分别处理,每个类完成一件模块任务。
<br><br>
仔细的分析一下,就会发现这样的设计完全是从程序员实现程序功能的角度来设计的,或者说,设计类的时候,是自低向上的,从机器的角度到现实世界的
角度来分析问题的。因此在设计的时候,就已经把程序编程实现的细节都考虑进去了,企图从底层实现程序这样的出发点来达到满足现实世界的软件需求的目标。
<br><br>
这样的分析方法其实是不适用于Java这样面向对象的编程语言,因为,如果改用C语言,封装两个C函数,都会比Java实现起来轻松的多,逻辑上也清楚的多。
<br><br>
我觉得面向对象的精髓在于考虑问题的思路是从现实世界的人类思维习惯出发的,只要领会了这一点,就领会了面向对象的思维方法。
<br><br>
举一个非常简单的例子:假使现在需要写一个网页计数器,客户访问一次页面,网页计数器加1,计数器是这样来访问的
<br></p>
<div src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol src="http://zohan.group.iteye.com/images/icon_star.png" alt="面向对象的思想方法 (转)"></a>
</div>
</div>
<ol class="dp-j">
<li>
<span><span>User?myUser?=?</span>
<span class="keyword">new</span>
<span>?User();;??</span>
</span>
</li>
<li>
<span>Iterator?iterator?=?myUser.listUsers();;??</span>
</li>
<li>
<span><span class="keyword">while</span>
<span>?(iterator.hasNext(););?{??</span>
</span>
</li>
<li>
<span>??iterator.next();;??</span>
</li>
<li>
<span>}??</span>
</li>
</ol>
</div>
<p>
<br>
这样就可以完全不用考虑程序代码实现了,从高层次上把功能抽象出来,定义成为接口,同时又可以把系统设计的很合理,完全根据业务的需求来进行设计。
<br><br>
结语
<br><br>
通过上面的几个例子的设计说明,使用面向对象的思维方法,其实是一个把业务逻辑从具体的编程技术当中抽象出来的过程,而这个抽象的过程是自上而下
的,非常符合人类的思维习惯,也就是先不考虑问题解决的细节,把问题的最主要的方面抽象成为一个简单的框架,集中精力思考如何解决主要矛盾,然后在解决问
题的过程中,再把问题的细节分割成一个一个小问题,再专门去解决细节问题。
<br><br>
因而一旦牢牢的抓住了这一点,你就会发现在软件设计和开发过程中,你自己总是会不知不觉的运用面向对象的思维方法来设计和编写程序,并且程序的设计和开发也变得不再那么枯燥,而一个合理运用面向对象技术进行设计和架构的软件,更是具备了思维的艺术美感。
</p>

热点排行