您现在的位置:首页 >> 热点资讯 >> 开源动态及其它 >> 内容

【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 来源:原创
共有评论 3相关评论
发表我的评论
  • 大名:
  • 内容:
  • 盒子文章(www.2ccc.com) © 2017 版权所有 All Rights Reserved.
  • 沪ICP备05001939号