面向对象思想

面向对象思想为软件设计与开发赋予了哲学的意义。在哲学的世界里,小至沙粒微尘,大至日月星辰乃至宇宙,均可视为单独的个体对象而存在。如果以哲学的目光凝视程序的世界,又何尝不是如此?一个用户,一种销售策略,一条消息,或是某种算法,一个Web的网页,面向对象思想均将其看作为一种对象。而每一种对象,都有其单独的生命周期,谁来创建它,谁来销毁它,它的内在属性,表现行为,以及它与外界之间的关系和集合,无不具有某种哲学的意味。我们在定义对象时,就好比是在描述一个活生生的事物,需要定义该对象的自然属性和社会属性,限定它的内涵与外延,勾勒出该对象的社会关系。而对于抽象、多态与封装,则是一种形而上学的概念,它将面向对象技术推向为思想的境界。

因此,我们在运用面向对象思想来定义对象时,就必须从思想的高度上俯瞰它,同时又必须结合现实来描述它。两者之间并没有绝对的矛盾。

所谓思想的高度,就要求我们必须理解所谓面向对象思想的精髓,并通过运用诸如设计模式、对象法则等知识,并从软件架构的角度出发,高屋建瓴地勾勒出整个软件结构的全貌。说得玄一些,就颇有几分“超然物外”的感觉。

所谓结合现实,也即是说对象离不开其依存的环境,毕竟软件设计不可能达到完全抽象的境界。从软件工程的角度来看,就是在设计时,需结合客户的需求、具体的业务来综合考虑。怎么界定对象的边界?对象的属性和行为是什么?哪些需要封装,而哪一些又需要暴露接口?有时候,业务才能决定设计的一切,如果纯为设计而设计,只能是空中楼阁,并不能搭建出扎实的建筑来。

posted on 2005-11-16 16:02 张逸 阅读(3099) 评论(10)  编辑 收藏 所属分类: Design & Pattern

评论

#1楼  2005-11-16 16:41 xiao_p [未注册用户]

很经典的描述,呵呵,有点像你悟了就是悟了,没有悟就是没有悟一样的感觉……   回复  引用    

#2楼  2005-11-16 17:53 netx [未注册用户]

牛牛牛,楼主真是个大牛   回复  引用    

#3楼  2005-11-17 11:24 Teddy's Knowledge Base      

@wayfarer:

话虽说得不错,但是说得太玄了,难免更容易催生两种人:
1. 被唬住了,不敢接近
2. 觉得太酷了,盲目追逐

虽然我不信任何宗教,但是相比较于佛学的深奥难释,无疑圣经的简单易懂更容易招揽信徒。从绩效来看,感觉还是后者会好一点。   回复  引用  查看    

#4楼  2006-01-11 14:00 鸿鹄 [未注册用户]

楼上的数的有道理。
我倒是觉得不是什么事情都能看明白的,绝大多数的时候,我们是仰视而不是鸟瞰,因为还没有达到那个可以爬到天空的能力。
基于现实、满足现实,逐步认识逐步扩展。推倒重来往往是不可避免得,这就是现实的规律。
当然,能站的更高看问题自然是好事情。   回复  引用    

#5楼  2006-01-18 18:00 游客 [未注册用户]

众妙之悬,悬之又悬;醉人人自醉;醒来有时是痛苦的!!   回复  引用    

#6楼  2006-01-19 18:01 老燕      

道可道,非常道,名可名,非常名,破折号,无极.   回复  引用  查看    

#7楼  2006-01-23 11:49 家中慢步      

Teddy的观点我不是很同意,我读Wayfarer文章很久了,从去年刚接触编程的时候就开始看,并没有太玄的感觉,象remoting和设计模式的很多文章写的都很透彻,容易理解...
另外,佛学和圣经,我总感觉不是一个层次的,虽然圣经简单易懂,佛学深奥难释,但是圣经无异于一本故事书,而佛学却是容纳深刻的哲学和心理学在里头的。。佛学的深刻似乎至今仍然无人能窥其半数...
文章的深度自然不能用文字的晦涩来评价,但是文章是否有内容才是我们看文章的标准,催生哪种人并不重要,重要的是写文章要有人读得懂,真正包含了作者希望表达的想法和观点.
并非个人崇拜,但严重支持Wayfarer老大...思想与表达都是强人..
  回复  引用  查看    

#8楼  2006-02-17 09:16 viecks [未注册用户]

设计模式的东西不是看出来的,是编出来的,没有在大型项目后期维护的痛苦挣扎,是不可能理解设计模式的价值的。

设计模式本身并不能带来任何东西,生搬硬套设计模式更是程序设计上的误区。

因此,个人认为,设计模式这种东西不讲也罢,有心人在实践的过程中自然会总结出结论,到时候在看看GoF的书就事半功倍了;没有大型项目设计经验的人,讲了也听不懂,懂了也未必能应用的上。

没有过痛苦,就不会知道幸福的滋味——   回复  引用    

#9楼  2006-02-20 10:08 真难受      

说得挺好的,看完以后有点感觉了,哈哈,与其不入门,我给希望 狂热   回复  引用  查看    

#10楼  2006-05-12 10:57 luis [未注册用户]

太空洞了,不着边际。没什么价值。
可以说楼主不懂面向对象。或许连对象是什么都没搞明白。
踏踏实实做些实际项目吧   回复  引用    




导航

公告

logo.gif
我的著作与译作

《软件设计精要与模式》

《WCF服务编程》

MVP_Horizontal_BlueOnly.png

From 03-03-2006
Counter: site stats

与我联系

常用链接

我参加的小组

我参与的团队

随笔分类(244)

随笔档案(235)

最新随笔

搜索

积分与排名

最新评论

阅读排行榜

评论排行榜