搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发

大象——Thinking in UML

程序员那些不能不说的秘密 2018-06-28
大象

大象——Thinking in UML

大音希声,大象希形, 近来闲暇,随手翻起一些曾经看过的书籍,才发现又有新的收获。

面向对象

面向对象 在如今的软件行业是一个很著名的术语,以至于 人们以为面向对象是现代科学发展到一定程度才出现的研究成果 。

普通民众的面向对象

在很多人看来,面向过程 和 面向对象 都是一种软件技术 ,例如 把面向过程归纳为结构化程序设计、DFD图、ER模型、UC矩阵等,而面向对象则被归纳为继承、封装、多态、复用等具体的技术。

事实上,上述的所有技术都只是人们在采用不同的方法来认识和描述这个世界时所采用的工具。
他们都只是表征而不是本征。

大师眼中的面向对象

接下来让我们看看面向对象大师,也就是UML创始人之一的 Grady Booch 在2004年IBM Developer Works Live!大会的访谈中讲过的一段流传甚广的话:

我对面向对象编程的目标从来就不是复用,相反,对我来说,对象提供了一种处理复杂性问题的方式、这个问题可以追溯到亚里斯多德:你把这个世界视为过程还是对象?在面向对象兴起运动之前,编程以过程为中心,例如结构化设计方法。然而,系统已经到达了超越其处理能力的复杂性极点,有了对象,我们能够通过提升抽象级别来构建更大的、更复杂的系统——我认为,这才是面向对象编程运动的正真胜利。

  • 不知读者看完这段话后有何感想?

  • 您心目中的面向对象是这样的码?

正如Booch所说的一样,从本质上讲 面向过程 和 面向对象 是一个古已有之的 认识论 的问题。

之所以面向对象会兴起,是应为这种 认识论 能够帮助我们构造更为复杂的系统来解释越来越复杂的现实世界。
认识到这一点,我们就应该知道比掌握具体的技术更为重要的是掌握认识论所采用的方法和分析过程。
只有掌握了方法才能自如地使用这些技术工具。
这个世界的本质是由对象组成的,平时看上去相互无关的独立对象在不同的驱动和规则下体现出不同的运动过程,然后这些过程便展现出来我们这个生动的世界。
在面向过程的眼中,世界的一切都不是孤立的,然相互紧密联系在一起,缺一不可,相互影响,互相作用,并形成一个具有严格因果律的小系统;
而更多的小系统组成了更大的系统,所有的小系统之间的联系也是紧密和不可分割的。
面向对象思想其实并不复杂,但是对于习惯了以过程方法来认识这个世界的朋友来说完全理解和接受面向对象思想却是不容易的。
如果您真的打算学习面向对象的方法,那么恐怕您得接受这个世界时分割开来的这个事实,并且相信只有在特定的场景下,孤立对象之间进行了某些信息交换才表现出我们所看到的那样一个过程。


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《大象——Thinking in UML》的版权归原作者「程序员那些不能不说的秘密」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注程序员那些不能不说的秘密微信公众号

程序员那些不能不说的秘密微信公众号:gh_fd0c7ff8ea54

程序员那些不能不说的秘密

手机扫描上方二维码即可关注程序员那些不能不说的秘密微信公众号

程序员那些不能不说的秘密最新文章

精品公众号随机推荐

上一篇 >>

sql 与 xml中的sql

下一篇 >>

深入浅出UML类图