2015-12-02 69 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