在現在面向對象的編程的時代,代碼重用是個永遠值得討論的話題,關于pb代碼的重用,不少人都有提過,不過我覺得有些觀點是不適當的,如何提高pb代碼的重用性,我談談我的看法.
首先說的應該就是如何在pb程序內部實現代碼的重用.這個相信大家都比較熟悉,那就是面向對象編程的3個關鍵:繼承,封裝,多態.相信用過pb一段時間的人都熟悉如何做到這3點,繼承,封裝不說了,多態也可以通過函數重載的方式實現.
上面說的是在一個程序項目中如何重用代碼,就是說這些代碼都是源代碼.那對于非原代碼的已有pb代碼資源如何利用呢?
最常用的應該就是如何利用pbd了.
在開發環境中包含pbd應該是最常用的方法,也就是說,將pbd庫包含到pb的開發環境的library list中,這個時候,就可以象調用pbl中的對象一樣,調用pbd中的對象和函數的功能了.這個時候,pbd除了無法看源代碼之外,其他方面和pbl沒有什么不同,編譯整個應用的時候,他們也將參與編譯.
第二中應用方式,應該就是不將pbd包含到項目的library list中,而是在程序運行的時候將pbd包含進來,使用的是pb的getlibrarylist,setlibrarylist的功能.這個方式對完全獨立的pbd特別適用.
第三種方式就比較少用,那就是用pb的automation server,首先將pb程序編譯成automation server的pbd,然后在其他程序用ole對象對它進行操作.對于pb程序,調用它是沒有必要的,因為完全可以用上述的其他方式調用,更加簡單,效率更高.但是它的好處是這個pbd可以被vc++,vb,bcb等調用,因為ole的支持是大部分開發工具都支持的,這樣就可以將pb開發的程序重用到其他語言開發的程序中.
第四種方式比automation server更加先進一點,那就是用com/com+組件.com/com+組件技術將會漸漸取代ole技術.同樣com組件可以被其他語言的程序所重用,同時com+組件還可以實現遠程調用,從而構建3層應用程序.
最后,如果你使用easerver開發3層應用的話,可以將pb代碼發布為easerver組件來調用.
終上所述,pb的代碼資源早已經不是只能被本身所利用,通過眾多的方式,它能夠很好的被其他語言利用,我想大家對它的片面看法也應該改改了.