2011-08-03 86 views
0

對象模型與抽象語法樹有什麼區別?抽象語法樹與對象模型

我對這些條款有些混淆。我知道這些都是

  1. 一個對象模型給出了對象的細節和他們在 應用的關係。

  2. AST將給出應用程序的元素結構。

我們可以從AST無法獲得的對象模型中獲得什麼?

在此先感謝。

回答

1

一個對象模型和AST代表着不同抽象層次的事物,除了每一個可能包含線條,框和文本的圖表之外,它們的共同點很少。

AST的維基百科example顯示代表編程語言小片段解析結果的樹。

對象模型是OO設計的一種描述之一,我們正在考慮各種類的對象。當我們考慮對象時,我們想知道他們做了什麼以及他們「知道」什麼。因此,如果我們有,說客戶對象C,一些訂單C已經放置了O1和O2以及這些訂單引用的一些產品P1,P2,P3,我們可以繪製關係並開始推斷在特定業務情景中可能發生的情況 - 例如,假設O2是{P2和P3}的訂單,我們可以考慮如何計算訂單的價格,或者如果我們缺貨P3,我們可能會做什麼。

甚至一個班級的AST將是相當廣泛和非常難以理解的行爲。我不認爲你可以從AST中推斷這些業務場景。

+0

感謝您的relpy ...我們是否有一個項目的AST或者它是否受限於單個文件?通過對象模型,我們獲得了整個應用程序的細節它是否可用於AST(即使我們沒有詳細的對象)... AST可以代表整個應用程序嗎? – Sachin

+0

我看不出有什麼內在的原因,爲什麼你不能建立一棵巨大的樹(或者森林,會有多少根?),所以我猜你認爲對象模型中的所有信息都隱含在AST。我認爲這個問題將會是一種抽象的喪失 - 你無法「看見樹木」這樣說。作爲比喻,考慮嘗試從編譯的機器代碼推理程序行爲,即使使用符號很難。 – djna