您現在的位置:首頁 >> 熱點資訊 >> 開源動態及其它 >> 內容

【MyBean-開源框架】進行簡單的邏輯插件(演示在控制臺中應用)

時間:2014/9/14 0:05:37 點擊:

  核心提示:【說明】很多時候大家認為客戶端插件一般是窗體。其實不然,很多功能都可以看成是插件,比如一個單據的審批功能,一個單據上面,單價的獲取功能,都可以看成是插件,然后后期通過配置,可以靈活進行切換。MyBean支持這種插件,支持這種純邏輯的插件。剩下的是需要自己去制定執行邏輯的協議,這個DEMO就是展示如果...

【說明】

很多時候大家認為客戶端插件一般是窗體。其實不然,很多功能都可以看成是插件,比如一個單據的審批功能,一個單據上面,單價的獲取功能,都可以看成是插件,然后后期通過配置,可以靈活進行切換。MyBean支持這種插件,支持這種純邏輯的插件。剩下的是需要自己去制定執行邏輯的協議,這個DEMO就是展示如果進行邏輯插件的編寫。

【DEMO設計】

該DEMO在調用DLL的一個插件完成兩個簡單數字的簡單合計,然后可以由其他插件調用日志插件輸出功能。

先制定接口協議(uILogic.pas):

type   /// <summary>
  ///   合計插件接口
  /// </summary>   ISumExp = interface(IInterface)
    ['{D02C3764-1231-46EC-8C74-95DFBF2A1ED5}']
    function sum(i:Integer; j:Integer):Integer; stdcall;
  end;

  /// <summary>
  ///   日志插件接口
  /// </summary>   IMyBeanLogger = interface(IInterface)
    ['{B872909D-99FF-47B9-A3F9-8CB9C26A8FD5}']
    procedure LogMessage(s: PAnsiChar); stdcall;
  end;

 

2.注冊日志插件, 由EXE提供實現,在EXE中注冊日志插件(uMyBeanLoggerImpl.pas)。

initialization
  ///注冊日志插件
  beanFactory.RegisterBean('mybeanLogger', TMyBeanLoggerImpl);

 

3.邏輯插件的實現(ISumExp接口的實現)

function TSumExpImpl.sum(i, j: Integer): Integer;begin   Result := i + j;

  (TMyBeanFactoryTools.getBean('mybeanLogger') as IMyBeanLogger).LogMessage('dll插件調用mybeanLogger插件,輸出一些信息');end;

 

4.注冊邏輯插件

library logicBean;

uses
  SysUtils,
  mybean.core.beanFactoryForNoVcl,
  Classes,
  uSumExpImpl in 'uSumExpImpl.pas',
  uILogic in '..\common\uILogic.pas';{$R *.res} begin   beanFactory.RegisterBean('sumExp', TSumExpImpl);end.

 

5.編譯出來的DLL和EXE放一起就可以運行了

 

該DEMO只是拋磚,想想自己的系統中可以把哪些功能做成邏輯插件……

作者:dinkysoft 錄入:dinkysoft 來源:原創
共有評論 4相關評論
發表我的評論
  • 大名:
  • 內容:
  • 盒子文章(www.srtxuk.icu) © 2019 版權所有 All Rights Reserved.
  • 滬ICP備05001939號
  • 快乐10分助手官网