免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 36186 | 回复: 147
打印 上一主题 下一主题

大家觉得面向对象怎么样。。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-04-18 09:36 |只看该作者 |倒序浏览
以前一直觉得面向对象是个噱头,大大的噱头;不过最近看了一本设计模式的书后,发现错了,大大的错了。。

很明显的一点就是编码的思维方式大大的不同:
面向过程是从计算机处理问题的流程和步骤出发,先做什么后做什么,整个非常清晰流程结构。
面向对象则从人们抽象分析现实事物出发,对客观世界的建模。
也就是说前者偏向于机器思维,而后者偏向人类思维。显然后者应当更自然更具有亲和力。

同时从软件工程的角度看。在分析阶段,面向对象可以结合UML工具(比如类图)做有效分析;在编码阶段,利用封装的特性进行安全的编码,利用继承的特性减少代码的冗余;在后期维护阶段,那么设计良好的软件结构将最大的减少代码的改动。(我们不是害怕修改代码,而是害怕修改了这部分代码会对其它代码产生什么样的影响;也就会引入新的BUG)

所以我觉得做项目就应该用面向对象,我也是极力说服老大这么做;结果他给我泼了一盆冷水,说面向过程简单,搞面向对象那么复杂做什么。。

论坛徽章:
0
2 [报告]
发表于 2010-04-18 10:40 |只看该作者
没人回,看来是不怎么样。。

论坛徽章:
0
3 [报告]
发表于 2010-04-18 10:41 |只看该作者
我同意你老大说的。。。

论坛徽章:
0
4 [报告]
发表于 2010-04-18 10:51 |只看该作者
OOP

论坛徽章:
0
5 [报告]
发表于 2010-04-18 10:56 |只看该作者
没有工程实践角度啊。

论坛徽章:
0
6 [报告]
发表于 2010-04-18 11:02 |只看该作者
面向对象在封装性方面是有优势的,继承还是谨慎使用。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2010-04-18 11:20 |只看该作者
最近得出来的经验,也好意思向老大推荐。
起码得沉淀个三五年再说吧。

面向对象编程看上去很美,可是仔细一了解,
你就会发现有时候不是那么回事儿,对象和对象之前,其实不是高度一致的协作关系,如同人和人之间一样。

了解了解函数式编程和面向进程模型吧。

论坛徽章:
2
程序设计版块每日发帖之星
日期:2015-06-17 22:20:00每日论坛发贴之星
日期:2015-06-17 22:20:00
8 [报告]
发表于 2010-04-18 11:35 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
9 [报告]
发表于 2010-04-18 11:35 |只看该作者
面向對象很好很強大,完美的近乎沒有任何缺陷——前提是:請先把一個項目用面向過程的方式以不同的方案至少實現8遍。

當然,類似/相關項目的豐富經驗可以減少面向過程方案原型的實現次數。

论坛徽章:
8
CU大牛徽章
日期:2013-04-17 10:59:39CU大牛徽章
日期:2013-04-17 11:01:45CU大牛徽章
日期:2013-04-17 11:02:15CU大牛徽章
日期:2013-04-17 11:02:36CU大牛徽章
日期:2013-04-17 11:02:58技术图书徽章
日期:2013-12-04 10:48:50酉鸡
日期:2014-01-03 10:32:30辰龙
日期:2014-03-06 15:04:07
10 [报告]
发表于 2010-04-18 11:51 |只看该作者
另外,對一個問題,你當然可以以人類的方式來思考——但最後你必須以機器的方式來實現它。



試圖把問題裝進面向對象這個框里,從而繞開對機器的了解——對初學者,很好,工程設計都可以用“一步一步跟我學用VB編寫計算器”的方式做了還不好?

但,天下沒有免費的午餐。把一切都往面向對象框框里面套,你要付出的代價就是:由於對機器的極度不了解,你永遠不會明白,為何同樣都是“以人類的方式思考”,有過“機器方式思考”經驗的人做的設計,為何就是比你輕巧100倍、快速100倍、實現難度低100倍、bug少100倍

——注意100倍是個嚴重樂觀的數字,我親眼見過有人把一個大項目的關鍵數據庫查詢效率設計到O(n^2),並且做了兩年。直到上線測試拖死了服務器,這才被我和另幾個人查出病根(我們是臨時組成的、專門解決這個問題的所謂“架構組”)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP