關於物件導向的一點想法

2021-04-16 00:01:30 字數 713 閱讀 2909

c++等語言的「物件導向」是源**級別的,是由編譯器為你呈現的「一片『物件導向』的假象」 ,它只限於編譯器的這一頭(輸入),編譯器的另一頭(輸出)同樣是一堆十分「physical」的二進位制指令序列,和c等面向過程的語言的編譯輸出沒有本質區別。所以newb程式設計師說,「我能用c寫出和c++同樣編譯結果的東東來」,newc程式設計師也說,「我的**可以通過c++的類封裝檢查,但執行結果完全可以破壞物件封裝,管你是不是私有成員。。。」

com規範的「物件導向」是二進位制級別的,介面形式的封裝介面,很好地隔離了物件的內部知識,互動完全基於對既定契約的查詢。這些優點同時也為它自己埋下了「禍根」,事實證明,com元件的封裝太過physical,而且它所用的用於自我描述的機理(typelib)卻不能完備地描述自己,這種描述於人於己都是那麼無力蒼白,使com無法擺脫介面氾濫、dll地獄等等早就存在的困擾。。。

那麼怎麼辦,技術要進步!某位大師說過,「所有的軟體問題都可以通過引入乙個中間層來解決。」 微軟的精英們在二進位制系統的上面又為我們建造了乙個「上層建築」的平台(clr),

把軟體元件封裝從「物理空間」架到了「邏輯空間」,基於metadata的型別描述形式和基於il的指令描述,物件只有通過clr的classloader才能按需進入二進位制指令序列的「物理世界」。由此可見,.net framework 的clr提供的assembly是一種更高層次的物件模型,它是屬於邏輯空間的並且是本地完善描述的。

絕妙的設計,沒有問題了嗎?呵呵,問題會有的,不然技術怎麼進步?

關於物件導向的一點理解

1.我渡過了快5天的學習終於對物件導向有一點眉目了。2.關於學習物件導向其實還是要多實踐,這樣才能有收穫。先要自己做,然後在對比老師的我們和他有什麼差距,做得不足。當你不能理解的時候需要多練習,有的同學不知道怎麼下手,總覺得這裡不知道怎麼做,那裡不知道怎麼做。其實都是沒有實踐的結果。3.這裡還是舉乙...

關於學習的一點想法

上了十幾年學,才發現自己很多本質的問題從來沒有想過。人類在發展過程中會遇到各種各樣的問題,面對各種各樣的問題,人們提出了各種解決方法。但是如果不用文字記錄下來,讓更多的人看到,實現知識的傳播,那麼未來的人類面對相同的問題就會一臉懵逼,然後花很多重複時間解決乙個解決過的問題。所以人類把各種問題的解決方...

關於CTFT DTFT DFT的一點想法

關於ctft dtft dft dfs等概念的理解一直是模模糊糊 似是而非的,近日忽然就咂摸到了一點滋味,簡單記錄一下,正確性不敢保證。考慮到計算機只能處理時域離散 頻域離散的訊號,因此時域連續或頻域連續的訊號,計算機無法直接處理 這是大前提 因此需要對連續的訊號進行離散處理,這就需要用到衝激串了 ...