程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> [mBean]-Delphi框架,回歸簡單,自然。

[mBean]-Delphi框架,回歸簡單,自然。

編輯:Delphi

最近公司要求把我們公司的任務可以外包,問我有沒有好的方案。

如果要其他程序員的人來做我們內部的框架會導致了,內部的框架需要公布很多單元和邏輯,思路。其次要把我們的思路和規則強加給其他的程序員。加大了其他人員的上手難度。

帶著這種問題把框架又進行了新一輪的優化。每每改進框架後都想丟棄掉之前的框架。心裡安慰自己應該是思想上得到了升華。確實從最初的框架到mBean得到了很大的提升,從之前的帶[shareCentre.bpl]到現在的[mBean]編寫插件規則越來越領活,前一版本的框架要求都實現IPlugin,IPlugin裡面定義了一些方法。[mBean]框架中插件只要求實現[IInterface]就可以成為插件。邏輯插件不要求語言,不要求帶包。只要實現了接口都可以調用。現在想這應該是我終極版的的框架了……。以後只會在框架上面開發更多實用的接口了。

不用帶特定的bpl,就可以是插件,遠離提示包需要進行編譯的痛苦。

可以導出接口的dll都可以是制作插件。

不用帶特定的bpl進行對象的共享。

不光是窗體才是插件,panel也可以是插件,TFrame也可以是插件。一個簡單邏輯也可以是個插件。

干預代碼最少,beanFactory.registerBean("xxx",Txxx);就可以注冊插件。

可以將插件注冊車單實例插件。怎麼獲取都只會創建一份beanFactory.registerBean('xxxx',TXXx).isSingleton := true;

獲取方便,app.getBean("xxx"),就可以創建一個插件不用管插件在哪個DLL中。

綠色小巧,不用安裝任何dpk,和ocx。

支持各種版本D(D7-XE5)。

 

[紅色區域是不帶包的DLL中的插件窗體]

為什麼JAVA比Delphi使用的人多,想想,JAVA模式比較固定,比如WEB有成熟的SSH框架和解決方案,讓初學者容易上手,代碼比較規范,相反Delphi開源東西太少,門派太多,門道太深,太多。

[mBean]借鑒Spring模式Bean模式,來管理插件。

[mBean]插件不限定編寫模式,不限定繼承關系,不強制帶包。以一種包容心態來接收插件。

 

在DLL中像beanFactory注冊插件,插件對象實現IInterface就行了,編譯出來的dll放到plug-ins目錄下面就可以被beanManager.dll進行管理和調用。

每個公司都有自己的主窗體模式,

有的主窗體要求子窗體嵌入tabSheet上面,

 

要求子窗體實現如下接口:

 
  /// <summary>
  ////// </summary>=  showAsMDI;  showAsModal: Integer; // UIFormClose; // UIFormFree; // getObject:TObject; // getInstanceID: Integer; ;

這些協議可以自己去定義,並去實現和遵守,這樣就是[mBean]協議的擴展。

 

D2007, XE5進行過編譯

[mBean]下載

http://url.cn/KdXMfu

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved