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如果審視上下文,有必要區別出來時,就翻譯為「某某類的(一個)實體」,否則可以一樣翻譯為「物件」即可。
我覺得 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 時, 多半都會伴隨物件的種類名稱。
回覆刪除感謝解惑~
回覆刪除