这个抽象定义中的几个字

时间:2013-06-25 10:53:33

标签: oop language-agnostic abstraction

如果我的问题不符合SO的标准,我很抱歉,但我真的很难通过抽象的定义中的最后几个字来自 Grady Booch

“抽象表示必不可少的 物体的特征,使其与所有其他物种区别开来 对象,从而提供清晰的概念界限, 相对于观众的视角

请解释“相对于观众的视角”是什么意思。任何一个例子都会非常有用。

2 个答案:

答案 0 :(得分:3)

它们只是意味着从试图理解抽象的人的角度来看,应该清楚它是什么,包含什么,不包含什么。

然而,如何实现可能明显与其他抽象不同。

例如:

URI是与Name不同的抽象。对于开发人员和用户来说,这是显而易见的。但是,实现方式它们可能只是字符串。

我认为他们试图说的是语义和行为正确地定义了抽象,而不是如何实现抽象。

答案 1 :(得分:2)

OOP世界中的定义是不同的,并不总是非常清楚,例如,我可以为您带来Tony Hoare的抽象定义:

  

“抽象源于对相似性的认识   在现实世界中的某些对象,情境或过程之间,   并决定专注于那些相似之处   忽视暂时的差异。“

也许这对你来说更清楚。但是,我并不太关心这些定义的含义。

理解抽象的重要之处在于,它具有向用户(或查看者)公开一组完全描述和识别实体(或对象)的行为(接口)的功能。一旦了解了这些行为(方法),您就可以而且应该忽略这些方法的实际实现。用户应该关心的是提供输入参数并获得正确的结果。

我认为这是一个更抽象的实用定义。