Delphi和Objective-C的對象模型對比太郎君的IT筆記(太郎君) · 2016-04-24 05:47對象模型就是類與對象的內存結構,基于該結構實現(xiàn)了對象的三大特征:封裝、繼承和多態(tài)。前些日子對比了一下Delphi和Objective-C的對象模型,發(fā)現(xiàn)兩者有很多有意思的地方,在這里和大伙分享一下。 相同部分 外部的部分接口相同
不同部分 內部的實現(xiàn)方式不同 Delphi對象模型 Delphi對象模型采用了兩級結構:對象-->類,大部分的函數(shù)地址保存在類中。它是一種哲學完備的對象模型,既有靜態(tài)方法,又有非靜態(tài)方法,而且非靜態(tài)方法又分為兩種
Objective-C對象模型 Objective-C對象模型采用三級結構:對象-->類-->元類,對象的函數(shù)指針保存在類中,類的函數(shù)指針保存在元類中。它是一種歸一化的設計,所有的方法都是動態(tài)方法,子類只保存本身的動態(tài)方法,類似于Delphi的動態(tài)方法,只是在該基礎上加了一套緩存,如果本身中沒有找到而在父親或者祖先中找到了,就緩存起來,再次訪問時可提高效率。 |
|