面向对象的本质是什么?

缪军 2010-04-29 12:12:37
作为菜鸟,大言不惭的回答CSDN盖章砖家的博文的问题
http://blog.csdn.net/jyk/archive/2010/02/08/5300402.aspx

面向对象的本质是什么:
统一描述,

人类一直在追求对现实世界的统一描述,
编程领域的面向对象就是统一描述在这个领域的具体表现,

由于软件工业本身的落后地位,几乎大部分的面向对象理论都是有领域相关的或者说是有条件性的。

换句话说:统一描述能达到的境界以及对生产的影响是跟业务领域、已有的知识、生产手段密切相关的,
所以他不同的开发组织,对OO有不同的理解,当你试图把你的理念推销给其他团队的时候,
可能别人根本不能接受,也可能是和他们的技术条件和生产手段不相容的.
...全文
366 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lybingyu 2011-02-17
  • 打赏
  • 举报
回复
很是同意10楼的说法,就像人类一样是从最早的原始生命演变出来的一种高级生物,更加合理的组织共性和个性,更加合理的组织软件项目。一种高效软件开发的方法
Ray_Yang 2010-05-13
  • 打赏
  • 举报
回复
该结贴啦
hangang7403 2010-05-13
  • 打赏
  • 举报
回复
赞同楼主,很有见地
guanmingle 2010-05-10
  • 打赏
  • 举报
回复
就是统一同性,区分异性
段传涛 2010-05-10
  • 打赏
  • 举报
回复
抽象 abstract
先搞清楚现实世界中的事物所属的类型,分析它们有那些属性和功能再将它们抽象到计算机的虚拟世界的--类
;在运行时由类创建对象,用对象的关系类模拟现实世界真实事物的相互关联
封装 encapsulation
封装的类=数据+对数据进行的操作(算法)
继承 inherit
重用已有的代码,而且不破坏已有的代码
多态 polymorphic
例如水果和苹果 水果拥有的特性 苹果有 --基类的特性--子类一定有。而且他拥有自己的属性
手酸了, 我写网页去了 呵呵 希望对你有用
段传涛 2010-05-10
  • 打赏
  • 举报
回复
个人觉得,好多方法完全理论化就没有意思了。
软件工程是能解决问题的,解决他们现实中的存在的瓶颈。
除非你要教育或者出书才总结这些东西
------------just for reference 仅供参考,是我自己的总结
从四个面向对象特征分析面向对象 ()
vip__888 2010-05-10
  • 打赏
  • 举报
回复
这个概念是很模糊的。
需要自己去靠经验的积累。
没有足够的经验没办法去深刻理解的。
呵呵,所以我还不是很理解。
理不完的逻辑 2010-05-09
  • 打赏
  • 举报
回复
万物皆对象。。。。
guonao 2010-05-02
  • 打赏
  • 举报
回复
对象吧.
s27566 2010-04-30
  • 打赏
  • 举报
回复
面向对象就是把简单的东西复杂化 显得自己有学问
小_虎 2010-04-30
  • 打赏
  • 举报
回复
自从我上次发的那个帖子,我现在依然对这个东西很模糊。。。

还得靠经验的累积。
SAGEM_M 2010-04-30
  • 打赏
  • 举报
回复
缪军 2010-04-30
  • 打赏
  • 举报
回复
sp1234,你把我前半句话给截掉了
“由于软件工业本身的落后地位”
这就是为什么关于面向对象的争论一直就没有停止过的原因,

缪军 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 sp1234 的回复:]
引用楼主 microtry 的回复:
几乎大部分的面向对象理论都是有领域相关的或者说是有条件性的看不懂这是什么意思。

面向对象理论是一套通用符号体系。语言、逻辑、最基本的抽象符号,是否所有的有形的东西都是成事不足不能为不同行业的人们沟通使用的呢?是否卖猪肉的人跟开汽车的人必须说不一国的语言?
[/Quote]

1、人们的终极目标是对一切事物的统一描述,可是事实是迄今为止没有实现,人们在不断接近这个目标;
2、牛顿的经典力学对于人类的日常生活是普适的,但是放到大尺度领域和量子领域就不适用了,你从卖软件总结出来的生意经很可能也能对卖猪肉的有帮助,而经典力学能给他的帮助就很有限了,他也听不懂,更不用说量子力学和相对论了;
3、所以,落实到软件开发组织,微软会从object开始写类库,而我们的底层库只涉及到我们平时接触的业务领域
缪军 2010-04-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 sp1234 的回复:]
如果仅仅说对象这个概念,或者把什么都封装为对象,现在几乎任何面向过程的思维模式都披上对象的外衣了,因为现在OOPL非常流行啊。

但是面向对象设计在描述自然的领域模型时:子类既可以继承父类但是又存在多态的行为。面向过程的思维对此无法理解,拒绝多态。
[/Quote]

那为什么不把精力放在对行为的分析上呢,对象的行为相对于属性要稳定得多,
我们经常发现:需求分析的结果是:
业务处理列表很小于数据列表;

无论是关系型数据库,还是文档型数据库,早已经给出对象特征的统一描述,只是很多人放着不用,非要在程序的代码里把变化不定的东西"描述"下来
xray2005 2010-04-29
  • 打赏
  • 举报
回复
进来学习的,不敢妄下断言。

sunnj87 2010-04-29
  • 打赏
  • 举报
回复
现在说的各种东西全都是对实际问题的抽象
名词太多,让人感觉头晕
感觉要了解面向对象,看看设计模式可能会有些帮助
koukoujiayi 2010-04-29
  • 打赏
  • 举报
回复
老外的思维,最权威的解释要问老外哦!!
  • 打赏
  • 举报
回复
或者这么说吧,不妨拿出几中“面向对象理论”(有几种面向对象理论),让我们看看是不是它们在描述软件构架时就没有共性,是不是每一种面向对象理论都只是某一个行业的方言?

这似乎是呓语,心里多照进实践的阳光,先接受然后批评,可以减少呓语。
wuyq11 2010-04-29
  • 打赏
  • 举报
回复
面向对象是一种更好的组织代码的方式,可以将系统中复杂的函数调用改为对象之间的协作关系。对象本身是一个内聚的可复用逻辑块。
面向对象的理论本质就是一种方法论
面向对象的主要应用领域,是大规模的软件系统
加载更多回复(8)

13,190

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 分析与设计
社区管理员
  • 分析与设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧