2015-12-02 29 views

回答

4

这是一个metaphor。在用户interface design或面向对象编程中使用了许多隐喻。桌面窗口不是一个真正的窗口,而是通过裁剪视口查看某个东西的比喻。类似地,计算机上文件系统中文件夹中的文件是一种隐喻,它将计算机系统与基于文件的物理机柜文件系统等同起来。在界面设计中经常使用的隐喻是Desktop metaphor

这里使用的特定隐喻被称为“戏剧隐喻”。剧院的比喻已经有一段时间了。例如,这里是由Xerox Parc的科学家开发的a description of a 1984 Smalltalk based system called rehearsal。基于这个想法的原始系统更广泛地使用了这个隐喻。例如,有一个阶段,我们通常认为这个阶段是今天的一个窗口,舞台上的表演者,我们可以将其视为场景图中的控件或节点,以及提供给表演者的暗示,我们可以将其视为消息或方法调用发送到场景图中的节点。

这些系统的软件目标开发人员是非专业开发人员,如教师,在计算机图形用户界面不广泛的世界中。因此,这些比喻是为了帮助目标开发者将交互式多媒体系统的方面与他们在“现实世界”中理解的东西联系起来而开发的。

这些东西的血统大体上是这些系统是在Parc开发的,作为Learning Research Group的一部分来构建基于图形的教育软件。其中一些想法被传播到Macromedia,其基于他们的学习工具(例如Director)在剧院或电影隐喻中,使用场景和舞台等创意,并在他们的定制语言Lingo中添加动画的时间线和关键帧等其他想法。 Macromedia创建Flash时使用了相同的想法,而stage是当今Flash API的组件。然后,早期的JavaFX团队在开发JavaFX脚本语言时使用了相同的概念,可能是因为它非常类似Flash,并且这些隐喻在Flash开发人员中取得了一些成功。 JavaFX 2基于JavaFX的JavaFX版本保留了JavaFX 1 FXScript中使用的隐喻名称Stage和Scene。

在不同系统中保持相同的隐喻可能有助于开发人员在技术之间进行切换,因为他们可能与之前学到的概念有关。

JavaFX系统是一种混合的隐喻,既有来自桌面隐喻的Windows,也有来自剧院隐喻的阶段,阶段从窗口继承。它只是非常松散地以戏剧隐喻为基础,只有阶段和场景才是这个比喻中的幸存者。

该StackOverflow答案描述了one way to think about applying the theater metaphor in JavaFX

+0

非常感谢! = D – Niknak

+0

太糟糕的官方文档有时会忽略像这样的历史性解释。它有助于理解很多东西:我记得开始学习编程,并且在某些技术术语面前完全心烦意乱,比如[为什么*方法*不称为*函数*](https://stackoverflow.com/questions/) 22913321)和东西。总有一个原因。非常博学的回答@jewelsea :) – smonff

2

Stage延伸Window,遵循inheritance过程。 Stage是一种特定的Window,具有一些共享的方法和参数。想到,Stage得到了Window没有的东西。

作为Window Javadoc explains it,其中托管场景并且用户与其交互的顶级窗口。一个窗口可能是一个Stage,PopupWindow或其他这样的顶层。窗口也用于基于浏览器插件的部署

你可以比较两者,思考一个亲子关系。

+0

非常感谢! = D – Niknak