免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: __BlueGuy__
打印 上一主题 下一主题

[技术动态] OO 位居我一直没弄明白的技术之首 [复制链接]

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
11 [报告]
发表于 2012-10-14 19:03 |只看该作者
bruceteen 发表于 2012-10-14 18:50
“OO喷子” 是啥?是骂OO的,还是吹嘘OO的?

OO曾经被认为是解决软件复杂性的一个希望,人们给予了其重望 ...

不想再和别人争执 OO了,

论坛徽章:
0
12 [报告]
发表于 2012-10-14 19:07 |只看该作者
普遍认为只要满足“封装”、“继承”、“多态”就是OO,我认为这是对OO的狭隘理解。

论坛徽章:
0
13 [报告]
发表于 2012-10-14 19:38 |只看该作者
什么是OO本身就是有争论的,搞不明白是正常的,无妨看这一篇OOPSLA 2009上发表的、充满争议的论文"On Understanding Data Abstraction",就知道OO这玩意本身就是含混不清的东西,要搞明白,哪还是先有个统一的定义再说吧。

论坛徽章:
0
14 [报告]
发表于 2012-10-14 19:40 |只看该作者
我觉得面向对象这个概念本身就没多少意义。因为它指的是“抽象”“封装”“重用”,这几乎指的是“科学方法”。
一个概念如果没提出有价值的新东西,那么这个概念本身就没多少意义。

论坛徽章:
0
15 [报告]
发表于 2012-10-14 20:07 |只看该作者
回复 8# bruceteen


    OO没说解决复杂性问题吧。OO试图解决的是代码的复用性和软件的可维护性。但很多时候被人曲解成“使用OO就一定可复用,可维护”,这是错误的。OO只是试图提供了一种通向可复用可维护的方法,但是能否达到目的就跟烧菜一样,火候没到就是生的,火候过了就糊了。而且有的人就喜欢生一点的口味,有的人就喜欢糊一点的口味。

所以理想是美好的,现实是残酷的。不管怎样,OO好歹提出了这么一个问题,而且提供了解决办法,更重要的是现在的软件质量的确比OO诞生之初要高不少,软件开发手段的提高是一方面,OO的作用也不小。

最后,设计师都倾向于把问题归结到客观,却很少愿意承认自己的能力不行,火候掌握不够。所以就拿工具,拿方法开喷,这是没有办法的事情。

设计软件就跟画画一样,是创造性的工作。画没画好怪笔太硬、纸太薄、绘画理论有问题?真是笑话。

论坛徽章:
5
技术图书徽章
日期:2013-08-17 07:26:49双子座
日期:2013-09-15 16:46:29双子座
日期:2013-09-25 08:17:09技术图书徽章
日期:2013-09-25 09:11:42天秤座
日期:2013-10-01 16:25:34
16 [报告]
发表于 2012-10-14 21:23 |只看该作者
本帖最后由 __BlueGuy__ 于 2012-10-14 21:25 编辑

回复 15# sonicling

我同意你的观点: 设计软件就跟画画一样,是创造性的工作。画没画好怪笔太硬、纸太薄、绘画理论有问题?真是笑话。   

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

论坛徽章:
14
巨蟹座
日期:2013-11-19 14:09:4615-16赛季CBA联赛之青岛
日期:2016-07-05 12:36:0515-16赛季CBA联赛之广东
日期:2016-06-29 11:45:542015亚冠之全北现代
日期:2015-07-22 08:09:472015年辞旧岁徽章
日期:2015-03-03 16:54:15巨蟹座
日期:2014-12-29 08:22:29射手座
日期:2014-12-05 08:20:39狮子座
日期:2014-11-05 12:33:52寅虎
日期:2014-08-13 09:01:31巳蛇
日期:2014-06-16 16:29:52技术图书徽章
日期:2014-04-15 08:44:01天蝎座
日期:2014-03-11 13:06:45
18 [报告]
发表于 2012-10-14 22:44 |只看该作者
回复 15# sonicling
我回顾的是OO的历史,当时人们并不这样看待OO,曾认为它可能成为一个包治百病的灵丹妙药而研究它发展它。举个不太恰当的例子,有点像物理学上的“弦论”,被寄予了统一场论的厚望。(之所以说“不恰当”,是因为OO最终只是一场闹剧,而弦论有其非常大的进步意义)

我不是一个反对OO的人,OO的作用是被历史和实践证明了的东西,有其生存的领域和存在意义,虽然不那么大。
但大部分鼓吹OO的家伙,其实都是些连基于对象和面向对象都分不清的鹦鹉,它们鼓吹的其实也不是真实的OO,而是之前意淫出的“一切都是对象”,这是我所反对的。

即便对于现在朴实的OO,意见也不是那么统一。支持的人认为,在某些场合,OO非常的优美,所以需要它;而另一部分人认为,虽然如此,但这样的场合太少,可以用其它方法替代,从而避免支持它的代价。

论坛徽章:
0
19 [报告]
发表于 2012-10-14 22:51 |只看该作者
OO其实就是把函数的一部分参数分给了属性来表示,参数少了,就让人看起来很“优雅”,但代价实在是太大。

论坛徽章:
0
20 [报告]
发表于 2012-10-15 01:33 |只看该作者
回复 18# bruceteen


    是的,这就是OO的两面,所以要辩证的看待它。使用的时候自己要有数:增加接口的话耦合度的确降低了,成本下降了,但是接口本身会带来成本的上涨。任何人都可以按自己的主观意志来确定耦合度下降的成本和接口本身的成本,从而在开发过程中维持一个动态平衡。不要去做得不偿失的事情。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP