object與instance可能是困擾程式設計類書籍譯者最多的名詞,在大部分的文章中,一旦翻譯成中文之後,即使將object或是instance都譯為「物件」,在語意上多半不會造成困擾(我自己也常這樣做),但如果細究起來,我認為其實object與instance是有所不同的。
object應該是泛指某一物件;而instance通常是特別指某一類的其中之一個。也就是說,出現instance的場合多半都會指明所屬的類別,比方說"a instance of Car class";而出現object的場合,多半不會特別指明其所屬類別,或者無法指明所屬類別,比方說"delete all objects in the collection"。
好,如果是這樣,那麼object與instance究竟應該如何翻譯呢?我個人的建議是object就簡單翻譯為「物件」,這也和一般稱「物件導向程式設計」相符;而instance如果審視上下文,有必要區別出來時,就翻譯為「某某類的(一個)實體」,否則可以一樣翻譯為「物件」即可。
10 則留言:
我覺得 instance 是指實體記憶體上的一塊區域,
實體也不錯啊
原因是因為像 javascript 的類別們都是一種物件,而且也可以由物件來建立實體。這樣物件和實體就可以分開來稱呼了
有時候還會跑出 entity 來湊熱鬧! 而 entity 一般也譯成實體,如實體關係圖 (entity-relationship diagram)。一本書中如果同時出現 entity 與 instance,譯成中文後就全變成實體了,可是意義上還是有差別的~
經驗中entity會出現的場合與object/instance比較有所區別,因此會比object與instance容易區分,其實通常如我文中所說把instance連同所屬類別名稱譯為「XX類別的實體」,這樣多半就會與entity區分開來。
個人覺得instance應該翻譯為「實例」,一方面與entity的實體區分,同時也是指出instance是類別(class)的一個實際案例.
事實上有很多坊間的物件導向程式或分析與設計的書籍也採用「實例」或「案例」的翻譯方式.
thx a lot
It helps me to understand Data Modeling very well...
You're welcome.
Instance我的觀點是認為是可以講成物件,其實翻成物件挺暢通的,看到作者有提到object和instance,我也認為可能是有些區別,但某些時候翻成物件,挺好讓人明白的。我看到這個單字是在一本介紹關於幾何繪圖的軟體書裡面看到的,該篇章說明陣列的功能,其中將陣列的出的特徵,書上就用了instance的這個單字。
(何謂特徵?特徵是例如一個四方形的幾何體,他是用拉伸特徵建立的。此外,還有許多功能可以建立特徵(feature)。)
(以上是一個四方體,只有含一個特徵就是自己本身的拉伸特徵,而陣列,則是把該特徵按照方陣複製,而本身該四方體不叫instance,而是被複製出按方陣排列的叫做instance。)
(例如一個4x3x2(LxWxH)的四方體,使用方向陣列,沿XY平面(三度空間,有xyz三個軸)陣列,2個instance就會有結果兩個四方型幾何出現在畫面上。(包含自己))
個人經驗。
您所提的和我文中所說明的應該沒有抵觸, 我這篇文章的重點就是 object 是泛稱, 而特定只某種物件時, 則是用 instance, 所以使用 instance 時, 多半都會伴隨物件的種類名稱。
感謝解惑~
張貼留言