如果我的问题不符合SO的标准,我很抱歉,但我真的很难通过抽象的定义中的最后几个字来自 Grady Booch
“抽象表示必不可少的 物体的特征,使其与所有其他物种区别开来 对象,从而提供清晰的概念界限, 相对于观众的视角“
请解释“相对于观众的视角”是什么意思。任何一个例子都会非常有用。
答案 0 :(得分:3)
它们只是意味着从试图理解抽象的人的角度来看,应该清楚它是什么,包含什么,不包含什么。
然而,如何实现可能明显与其他抽象不同。
例如:
URI
是与Name
不同的抽象。对于开发人员和用户来说,这是显而易见的。但是,实现方式它们可能只是字符串。
我认为他们试图说的是语义和行为正确地定义了抽象,而不是如何实现抽象。
答案 1 :(得分:2)
OOP世界中的定义是不同的,并不总是非常清楚,例如,我可以为您带来Tony Hoare的抽象定义:
“抽象源于对相似性的认识 在现实世界中的某些对象,情境或过程之间, 并决定专注于那些相似之处 忽视暂时的差异。“
也许这对你来说更清楚。但是,我并不太关心这些定义的含义。
理解抽象的重要之处在于,它具有向用户(或查看者)公开一组完全描述和识别实体(或对象)的行为(接口)的功能。一旦了解了这些行为(方法),您就可以而且应该忽略这些方法的实际实现。用户应该关心的是提供输入参数并获得正确的结果。
我认为这是一个更抽象的实用定义。