黄国强 2024/01/10
天才相对于凡人,最大的区别就是洞察力的区别。那么乔布斯是如何认识面向对象的呢?1994年Rolling Stone 对乔布斯进行了采访。留下了这一段话:
对象就像人一样,也是活生生的生命。他们有知识,知道怎么完成任务;他们有记忆,可以把发生的事情记下来。而你和他们的互动并不是低层次的,你是与他们在一个高度抽象的层面上互动,就像我们现在的对话一样。
我举个例子来说明。如果我是一个“洗衣”对象,你可以把脏衣服给我,然后告诉我说:“请帮我把这些衣服洗了吧!”而我恰好知道旧金山最好的洗衣房在哪,并且我会说英语,兜里也有美元。于是我出门打了一辆出租车,告诉司机带我去位于旧金山的洗衣房。我到了那里洗好衣服之后,又坐车回到这里。我把洗好的衣服交还给你,说:“你的衣服已经洗好了。”
乔布斯虽然不会写一行程序,但是我们不得不承认,他比绝大多数程序员理解的都到位。这么多年,我自己对程序开发也总结出下面一段话,自认为非常有价值。
面向对象软件开发只是两件事:
1 开发各种处理具体事务的对象
2 开发负责创建上面事务对象的工厂对象
[参考]
1 软件之禅(七)面向对象(Object Oriented)
2 软件之禅(九)对象分类(Classify)
3 提了这么多年的面向对象,你真的懂它的含义吗?