锁定老帖子 主题:面向对象之弊,面向过程之优
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2010-07-19
做一件事,OO和PO都可以,从这个角度看,OO和PO只是代码的不同组织方式而已。
|
|
返回顶楼 | |
发表时间:2010-07-19
面向对象精髓在于继承和多态,楼主仅就封装性一个方面与面向过程进行比较,难怪得出如此结论。
面向对象的好处在与于对象的方式描述现实世界,也就是说面向对象提供将对现实世界映射为计算机中模型的一个良好的方法。 面向对象方式对世界的描述,可以使得将来计算机能够理解有特定语义的对象,并执行其行为,从而使人工智能得到发展。本体论就是指业务领域对象的形式化描述。如果没有业务领对象的概念,本体论就不会存在了,而本体论则是面向语义学的下一代智能万维网的基础之一。 所以,仅从编码的角度来比较面现象对象和面向过程,我感觉有些偏颇! 不妥之处,欢迎讨论! |
|
返回顶楼 | |
发表时间:2010-07-19
ironsabre 写道 lyy3323 写道 楼主有避重就轻的嫌疑呀。
何为面向对象? 不得不说封装,继承,多态。 楼主把面向对象海面以下的代码拿出来与过程相比。。。 纠结。。。。 面向对象的大部分思想在面向过程中也能体现 但面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃 。 再次纠结。。。。 扯淡,看看linux用什么写的。 这位哥,我想先问下你,你用过面对过程的语言开发过大型系统吗? 并不是说面向过程就肯定导致系统膨胀(良好的设计当然可以避免。)。 而是面对对象相比之下,突显了这个问题。 封装你懂吗? |
|
返回顶楼 | |
发表时间:2010-07-20
lyy3323 写道 ironsabre 写道 lyy3323 写道 楼主有避重就轻的嫌疑呀。
何为面向对象? 不得不说封装,继承,多态。 楼主把面向对象海面以下的代码拿出来与过程相比。。。 纠结。。。。 面向对象的大部分思想在面向过程中也能体现 但面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃 。 再次纠结。。。。 扯淡,看看linux用什么写的。 这位哥,我想先问下你,你用过面对过程的语言开发过大型系统吗? 并不是说面向过程就肯定导致系统膨胀(良好的设计当然可以避免。)。 而是面对对象相比之下,突显了这个问题。 封装你懂吗? 1。 但面向过程最大的问题在于随着系统的膨胀,面向过程将无法应付,最终导致系统的崩溃 。 2。 并不是说面向过程就肯定导致系统膨胀(良好的设计当然可以避免。)。 你已经前后矛盾了。 |
|
返回顶楼 | |
发表时间:2010-07-20
ltian 写道 仅从编码的角度来比较面现象对象和面向过程,我感觉有些偏颇!
不妥之处,欢迎讨论! 严重同意。 |
|
返回顶楼 | |
发表时间:2010-07-20
ipconfiger 写道 你从哪里得来面向过程将无法应付,最终导致系统的崩溃 的结果的,臆测居多吧,还是看着书上这么写你就这么说阿。Unix复杂不?面向对象了吗?Unix崩溃了吗?怕是windows崩溃得更加的常见吧
Unix主要得益于它的exe + sh风格吧。 提倡一个程序只做好一件事情,复杂事物由脚本驱动exe协作完成。 我觉得这个跟OO的思想还是有共通之处的。 |
|
返回顶楼 | |
发表时间:2010-07-20
mis98zb 写道 ipconfiger 写道 你从哪里得来面向过程将无法应付,最终导致系统的崩溃 的结果的,臆测居多吧,还是看着书上这么写你就这么说阿。Unix复杂不?面向对象了吗?Unix崩溃了吗?怕是windows崩溃得更加的常见吧
Unix主要得益于它的exe + sh风格吧。 提倡一个程序只做好一件事情,复杂事物由脚本驱动exe协作完成。 我觉得这个跟OO的思想还是有共通之处的。 这不是oo的思想,这只是一些做事的基本原则。 这些原则oo可守,po也可守,包括平时做事的时候也可守的。 不能把这些都放到oo的思想里去。 |
|
返回顶楼 | |
发表时间:2010-07-20
呜呼哀哉,这样也能评良好。看来代表封建思想的PO时代其影响力还是根深蒂固,民智未开。
|
|
返回顶楼 | |
发表时间:2010-07-20
就怕见到这种说思想的,思想怎么度量?怎么量化?
说OO思想的人能列出来么?怎么的有个123吧,而且要保证能能度量,量化 好的程序高内聚,低耦合。相对可以复用。 在我看来这是符合好的标准最低要求,这个和面向对象有关系么? 具体来说我认为面向对象是语言的技术,要上升到思想层面似乎每个人的理解都不一样 如果不能度量、量化的东西我们还是离他远点。 |
|
返回顶楼 | |
发表时间:2010-07-20
个人感觉这个问题楼主的出发点不是很好,面向对象的出现是取代面向过程设计中的不足的。而语言本身只是起到一个实现的目的。并不能说明什么问题。
所以如果从设计这个角度去理解的话,那么面向对象在一些很多地方对于面向过程的优势就体现出来了。尤其是在大型系统的应用上。 在面向过程方式中,通常是分模块,画数据流进行设计。 而在OO中却变成了 用例图,序列图,状态图等。 个人感觉这个和经济领域的计划和市场有点像。面向结构做设计的时候就像在做计划,可是实际上很难将所有过程都计划好。而面向对象重点在于将职责明确的分解到各个对象中去,用例图,序列图和状态图都可以明确看出某个职责的归属。(市场就是规定了职责权利后,自由发挥完成交易) 因为有了面向对象设计的优势,所以才出现了面向对象的语言。因为面向对象的语言对于实现面向对象的设计更加的直观方便。事实上使用C也可以实现面向对象的设计,但是这个实现比较有难度。 |
|
返回顶楼 | |