乔帮主告诉你什么是面向对象
来源:互联网 发布:人工智能战机 编辑:程序博客网 时间:2024/06/02 11:27
对于面向对象编程(OOP)这个概念,至今为止我还未见过有人能比乔布斯诠释得更加透彻。乔布斯从来没有接受过正式的工程训练,但是他对于自己所做的和所说的都有非常清晰的思路,无论是技术、设计还是艺术。
早在1994年,Rolling Stone对乔布斯有一个采访。在那个年代,面向对象仍然是一个很潮的概念,能够理解并付出实践的人并不多,而乔布斯却给公众定义了什么是面向对象。
Jeff Goodell:
请你用尽量简练的语言解释一下,究竟什么是面向对象的软件?
乔布斯:
对象就像人一样,也是活生生的生命。
他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。你和他们不在低层次上交互,而是像我们现在的对话一样,在一个高度抽象的层面上交互。
我举个例子来说明。
如果我是你的“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”。
//一个对象调用另一个对象,“洗衣”对象对外提供一个洗衣方法
而我恰好知道旧金山最好的洗衣房在哪,并且我会说英语,兜里也有美元。于是我出门打了一辆出租车,告诉司机带我去位于旧金山的洗衣房。我到了那里洗好衣服之后,又坐车回到这里。我把洗好的衣服交还给你,说:“你的衣服已经洗好了。”。
//“洗衣”对象中洗衣方法的实现过程
你并不知道我是怎么做到的。你不知道哪里有洗衣店,也可能只会说法语,或者是兜里没钱,连车都打不了。但是我知道怎么完成这项任务,而你不需要知道任何细节。
//“洗衣”对象中洗衣方法的实现并不对外暴露,外界并不知道、或者说并不需要知道它的具体实现
所有的这些复杂流程都隐藏在我的内部,而我们之间可以高度抽象地互动,这就是对象。他们把复杂过程封装在内部,而对外呈现的接口是高层次的,抽象的。
所谓面向对象,就是将功能、属性高度封装在某个对象中,对外的暴露永远是最简单最抽象的
- 乔帮主告诉你什么是面向对象
- 乔帮主告诉你什么是面向对象
- 最简单的例子告诉你什么是面向对象(java)
- 告诉你什么是SaaS
- 告诉你什么是“五险一金”
- 告诉你什么是“五险一金”
- 告诉你什么是“五险一金 ”
- 告诉你什么是“五险一金”
- 告诉你什么是多线程
- 面试官问你什么是面向对象?
- 告诉你什么是MB、MQ?
- 告诉你什么是数据分析
- 小故事告诉你什么是ERP
- 通俗易懂的告诉你:什么是民主!
- 告诉你究竟什么是真正的pushmail
- 眼泪会告诉你什么是伤痕!
- 清华学生告诉你什么是清华!
- 认识单片机-大白话告诉你什么是单片机
- 部分背包问题
- leetcode——109——Convert Sorted List to Binary Search Tree
- hdu2147——kiki's game(博弈论)
- hibernate.cfg.xml配置文件的解释
- 【LeetCode】Contains Duplicate 解题报告
- 乔帮主告诉你什么是面向对象
- bzoj 3156: 防御准备(斜率优化)
- MySql: AUTO_INCREMENT
- hdu 2955 Robberies 01背包问题
- ITK/VTK管线执行进度值得获取 设置管线中断
- 抽象工厂模式
- How to Track Changes in Word 2016 Documents
- Java工程师成神之路
- ASP中页面之间传递值的几种方式