码迷,mamicode.com
首页 > 其他好文 > 详细

乔帮主告诉你什么是面向对象

时间:2016-05-01 13:41:28      阅读:191      评论:0      收藏:0      [点我收藏+]

标签:

对于面向对象编程(OOP)这个概念,至今为止我还未见过有人能比乔布斯诠释得更加透彻。乔布斯从来没有接受过正式的工程训练,但是他对于自己所做的和所说的都有非常清晰的思路,无论是技术、设计还是艺术。
技术分享

早在1994年,Rolling Stone对乔布斯有一个采访。在那个年代,面向对象仍然是一个很潮的概念,能够理解并付出实践的人并不多,而乔布斯却给公众定义了什么是面向对象。
Jeff Goodell:
请你用尽量简练的语言解释一下,究竟什么是面向对象的软件?
乔布斯:
对象就像人一样,也是活生生的生命
他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。你和他们不在低层次上交互,而是像我们现在的对话一样,在一个高度抽象的层面上交互。
我举个例子来说明。
如果我是你的“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”。
//一个对象调用另一个对象,“洗衣”对象对外提供一个洗衣方法
而我恰好知道旧金山最好的洗衣房在哪,并且我会说英语,兜里也有美元。于是我出门打了一辆出租车,告诉司机带我去位于旧金山的洗衣房。我到了那里洗好衣服之后,又坐车回到这里。我把洗好的衣服交还给你,说:“你的衣服已经洗好了。”。
//“洗衣”对象中洗衣方法的实现过程
你并不知道我是怎么做到的。你不知道哪里有洗衣店,也可能只会说法语,或者是兜里没钱,连车都打不了。但是我知道怎么完成这项任务,而你不需要知道任何细节。
//“洗衣”对象中洗衣方法的实现并不对外暴露,外界并不知道、或者说并不需要知道它的具体实现
所有的这些复杂流程都隐藏在我的内部,而我们之间可以高度抽象地互动,这就是对象。他们把复杂过程封装在内部,而对外呈现的接口是高层次的,抽象的。

所谓面向对象,就是将功能、属性高度封装在某个对象中,对外的暴露永远是最简单最抽象的

乔帮主告诉你什么是面向对象

标签:

原文地址:http://blog.csdn.net/ooppookid/article/details/51289769

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!