抽象是一个似乎难以解释的概念,而不回复使用编程术语。我已经考虑了很多,但我无法得出满意的答案。有没有人有任何非常一般但非常相关的解释?
隐喻,similes等都是受欢迎的。
答案 0 :(得分:21)
一辆车。
您通过抽象与汽车互动 - 油门踏板,方向盘,用于隐藏车辆的复杂性。
使用油门踏板的抽出来控制发动机转速,您无需手动将气体注入发动机并控制活塞。
方向盘是另一种抽象。你转动方向盘,它同时转动两个前轮,大大简化了你作为驾驶员的任务。您可以在保留界面的同时用另一个替换基本实现(例如,较新的汽车具有动力转向)。
自动变速器是另一个很好的例子。
答案 1 :(得分:7)
忽略某些事情的细节。
例如,转动汽车中的钥匙启动汽车,这样可以提取起动电机,电池,防盗装置,汽油箱等细节......
答案 2 :(得分:6)
大多数人整天都会从复杂的事情中抽象出相关的细节,所以我认为找到一个例子并不是非常困难。
如果我告诉你我会给你10秒钟画一些东西,那么当我说“开始画一个房子”时,你不可能想出一些与我的画有任何不同的东西:
/\
/ \
| |
--
因为你的大脑抽象了关于你房子最相关的细节:屋顶,墙壁 - 如果你有时间 - 门,窗户。
我们从一切中抽象细节只是因为它使理解更容易。我们没有了解椅子如何构造的每一个细节 - 我们只是去宜家购买一个看起来不错的椅子。有很多很好的例子。
答案 3 :(得分:4)
抽象可能意味着编写可应用于更广泛情况的规则(或程序)。
你可以为玛格丽特披萨写一份食谱,要求:西红柿,马苏里拉奶酪,白面粉,水,罗勒,糖,盐,特级初榨橄榄油和酵母。
或者你可以制作披萨配方,这需要面团和馅料。这是一个抽象的食谱。
然后你可以选择用白面粉,水,糖,盐,特级初榨橄榄油和酵母制作面团。
您还可以选择制作西红柿,马苏里拉奶酪,罗勒和特级初榨橄榄油。
但您也可以选择使用其他配料(例如意大利辣香肠和辣椒)和其他类型的面团(如全麦面粉或玉米面)。
答案 4 :(得分:3)
手机就是一个很好的例子。当你给某人打电话时,你不需要知道你按某些号码之间的所有技术步骤,然后拨打"拨打"并与你正在打电话的人联系。所有你知道的是,当你按下他们的号码并拨打电话时,你就连接了。细节被抽象出来。
答案 5 :(得分:1)
如果你指的是抽象,就像它由库/框架提供的那样:
使用提取某些东西的软件层可以看作雇用为你工作的人,你不能或不想自己做。
将事物抽象为典型的软件结构(如类和对象)有点难以解释......
答案 6 :(得分:0)
我要说,抽象是将复杂概念概括为相对简单的概念,重点关注概念的哪些部分在当前环境中是重要的。
答案 7 :(得分:0)
我建议抽象是关注相关细节而忽略其余细节。
假设你想雇一位厨师。
你做想要关注
但是,你不需要注意
等等。
答案 8 :(得分:0)
为什么不做“住所”。
正如在“24a Posh Towers”中所说的“码头区四卧室复式公寓”是一个“伦敦公寓”,是一个“家”,是一个住宅。 “埃塞俄比亚野生动物食品帐篷旁边的蓝色帐篷”是“我在格拉斯顿伯里的帐篷”是一个“临时住所”,也是一个“住宅”答案 9 :(得分:0)
抽象是一种与任何特定实例无关的概念或想法
答案 10 :(得分:0)
标记。
三头奶牛,三把椅子和三棵樱桃树有什么共同之处?这些共同点有什么问题?你不能画它,甚至解释这个概念很难,但它仍然是一个有用的概念。
刘易斯卡罗尔引用爱丽丝梦游仙境:
"[doormice that were drawing everything that begins with an M,
such as mousetraps, and the moon and memory, and muchness — [..]
did you ever see such a thing as a drawing of a muchness ?"
答案 11 :(得分:-1)
对我来说,汽车太先进了。购物车怎么样?你推,它移动。