機制方法熬之滴水穿石 Delphi曾經的利器 8

2021-09-06 09:56:45 字數 1959 閱讀 5540

每日一貼,今天的內容關鍵字為機制方法

12--delphi的介面

到現在我都認為介面程式設計比類繼承更加的具有彈性和更適用於很多的應用中,很多人都認為多重繼承是乙個很高超的方法,其實多重繼承的功能讓整個類越來越臃腫起來,介面程式設計是乙個講究實際,比較親近物件導向發展潮流的技術,巧妙的介面計畫可以控制日漸巨集大的框架,最明顯的莫過於spring框架了。當然介面程式設計概念,在delphi時期一直就有了,在我用delphi4弄dcom程式設計,在分布式的系統中運用非常普遍了,介面機制讓**維護起來非常便利。在物件導向運用方面,介面程式設計的方法可以讓類繼承的方法缺陷遮蔽掉,像類物件和類物件之間的互動,兩者必須知道對方型別,因此形成了緊耦合的關係,這樣形成一方類改變勢必會影響另一方從而破壞了原來的任務**。所以我們需要一種機制來定義通用的溝通方法。

介面就是一群服務方法的集合,在2023年的時候corba技術漫天飄動,

這是乙個典範的proxy的技術也是乙個介面機制運用最好的技術了。那時候我基本上還是以微軟的com元件做開發,這樣的介面機制當然以com物件之間合作和溝通的機制。該介面機制基本上由乙個獨一的介面,我們快捷鍵crtl+shift+g就可以生成guid。這個介面都是從介面的最高層的類iunknow介面繼承上去的,該介面的方法有查詢介面功能queryinte***ce,以及管理介面的生命週期的addref和release方法,當乙個介面加上乙個獨一的guid號後便可以作為com介面了。然而com介面機制由於只提供了介面的宣告和介面的繼承,實際上並沒有實現繼承。所以當要實現特定的com介面時,除了實現介面的方法以外,還須實現此介面所有父代介面宣告的服務方法。com介面機制由於也提供了控制com物件的宣告週期,因此該介面變得龐雜起來,所以我們要通過介面來控制com的生命週期。所以只要具有com物件的介面,com物件便不會被釋放掉,我們經常使用計數器來控制應用的次數,所以每次我們都需要增加介面引用的計數值,因此整個編碼過程還是極為繁瑣的。當年被吹噓的corba計數,還有我曾弄過的com程式設計如今都退出了介面程式設計的舞台,那些編寫com的**都已成了塵封的故事。

每日一道理

生命,是一場漫長的棋局。這盤棋沒有獵獵西風,沒有四起狼煙,只有在取捨和進退中抉擇。只有像棋中的小卒那樣,勇往直前,毫不退縮沿著溝溝坎坎的人生之路,艱難而執著的求索,前進,才會譜寫人生最壯麗的強者之歌。

delphi的介面除了支撐com外,在delphi6支撐web service開發是加入了乙個介面叫做rtti。這個rtti叫作:run time type information.該介面是由delphi6的編譯器m+/m-指令支撐的,在原始碼中我們看到只要在介面引用了該編譯,該介面便主動有了rtti資訊。其實rtti資訊是有tintfmetaddata的結構體定義的,該介面儲存的資訊有介面名稱,介面宣告的單元,儲存介面方法資訊動態陣列,介面資訊指標等,我們應用這介面就可以訪問介面資訊可用於更為龐雜的編碼過程中。

(未完待續..........)

文章結束給大家分享下程式設計師的一些笑話語錄: 有一天,乙個男人穿越森林的時候,聽到乙個細微的聲音叫住他。他低頭一看,是乙隻青蛙。

「如果你親我一下,我會變成乙個美麗的公主哦。」男人一言不發,把青蛙撿起來,放入口袋。

「如果你親我一下,我會變成乙個美麗的公主哦。而且,我會告訴我遇到的每乙個人,你是多麼聰明和勇敢,你是我的英雄。」男人把青蛙拿出來,對著它微微一笑,又把它放回口袋。

「如果你親我一下,我會變成乙個美麗的公主,然後我願意成為你的愛人一星期。」男人又把青蛙拿出來,對著它微微一笑,把它放回口袋。

「如果你親我一下,我會變成乙個美麗的公主,然後我願意成為你的愛人一年,而且你可以對我做任何事。」再一次,男人把青蛙拿出來,對著它微微一笑,又把它放回口袋。

最後,青蛙無力地問:「我開出了這麼好的條件,為什麼你還不肯吻我?」男人說:「我是乙個程式設計師,我可沒時間和什麼公主鬼混。不過,擁有乙個會說話的青蛙,倒是蠻酷的。」

--------------------------------- 原創文章 by

機制和方法

---------------------------------

Shell之sed用法 轉滴

unix系統裡,每行結尾只有 換行 即 n windows系統裡面,每行結尾是 換行 回 車 即 n r 乙個直接後果是,unix系統下的檔案在windows裡開啟的話,所有文字會變成一行 而windows裡的檔案在 unix下開啟的話,在每行的結尾可能會多出乙個 m符號。好了,所以我的問題就出在被...

訊息傳遞機制之Handler機制

在專案中,都會遇見執行緒之間通訊,元件之間通訊.在應用程式中,往往會有一些比較耗時的操作 為了防止阻塞主線程 會將耗時的操作放到子執行緒中執行 處理完成後再去更新ui 但是android不允許子執行緒操作ui 違背了android單執行緒模型的原則 即ui操作不是執行緒安全的而且這些操作必須放在ui...

熬之滴水穿石 一切從windows程式設計開始 4

4 winodws程式設計的核心函式 實際上我是從delphi的rad工具走上windows程式設計這條道上,所以最初我接觸到了windows程式設計是非常簡單的。在很長一段時間,我並沒有使用過真正意義上的windowsapi函式,delphi強大的vcl框架遮蔽了一切。讓我對於windows程式設...