向非程序员解释抽象

Dom*_*mra 12 abstraction programming-languages

抽象是一个似乎难以解释的概念,而不回复使用编程术语.我已经考虑了很多,但我无法得出满意的答案.有没有人有任何非常一般但非常相关的解释?

隐喻,similes等都是受欢迎的.

Ste*_*hen 21

一辆车.

您通过抽象与汽车互动 - 油门踏板,方向盘,用于隐藏车辆的复杂性.

您可以使用油门踏板的抽取来控制发动机转速,您无需手动将气体注入发动机并控制活塞.

方向盘是另一种抽象.你转动方向盘,它同时转动两个前轮,大大简化了你作为驾驶员的任务.您可以在保留界面的同时用另一个替换基本实现(例如,较新的汽车具有动力转向).

自动变速箱是另一个好例子.


mik*_*002 8

抽象化

忽略某些东西如何运作的细节.

例如,转动汽车中的钥匙即可启动汽车,这样可以提取起动电机,电池,防盗装置,汽油箱等细节......


Nic*_*uer 6

大多数人花了一整天时间从复杂的事物中抽象出相关的细节,所以我认为找到一个例子并不是非常困难.

如果我告诉你我会给你10秒钟画一些东西,那么当我说"开始画一个房子"时,你不可能想出一些与我的绘画有所不同的东西:

 /\
/  \
|  |
 --
Run Code Online (Sandbox Code Playgroud)

因为你的大脑抽象了关于你房子最相关的细节:屋顶,墙壁 - 如果你有时间 - 门,窗户.

我们从一切中抽象细节只是因为它使理解更容易.我们没有了解椅子如何构造的每一个细节 - 我们只是去宜家购买一个看起来不错的椅子.有很多很好的例子.