zoukankan      html  css  js  c++  java
  • [MyBean-说明书]关于插件的单件模式(singleton),插件的共享模式

    【说明】

    单件模式是一种用于确保整个应用程序中只有一个类实例。

    想想我们的系统中有哪些方面可以应用到单件模式,比如大家常说的连接(ADOConnection)共享,其实就是指的单件模式。

    【MyBean中的单件模式】

    MyBean中插件一旦成为单件模式,框架就会帮你接管对象的生命周期。你每次调用getBean都只会产生一份实例,也就是说对象只会创建一次,不管是窗体插件还是无UI的逻辑插件。

    MyBean中可以通过两种方式使插件成为单件模式。

    1.最简单的一种是注册的时候,参数选定为单件模式,也是最简单明了的一种方式。

    library diocp_bean;
    
    uses
      SysUtils,
      Classes,
      mybean.core.beanFactory,
      uRemoteServerDIOCPImpl in '....ServiceuRemoteServerDIOCPImpl.pas';
    
    {$R *.res}
    
    begin
      beanFactory.RegisterBean('diocpRemoteSvr', TRemoteServerDIOCPImpl).Singleton := true;
    end.

    2.通过配置文件可以配置插件为单据模式:

    假如上面的插件注册的是普通的模式,而且这个插件你没有源码,你想直接使用,又想是单件模式怎么办?你可以使用配置文件达到

    //  如果注册是这样的, beanFactory.RegisterBean('diocpRemoteSvr', TRemoteServerDIOCPImpl)
    {
       list:
       [
          {
             "id":"dbSERVER",              //getBean的时候的参数
             "pluginID":"diocpRemoteSvr",  //如果与id一致可以进行忽略
             "lib":"diocp_bean.dll",       //宿主文件名
             "singleton":true,             //单件模式
             "config":
              {
                  "host":"127.0.0.1",
                  "port":9983
              }
          },
          {
             "id":"imSERVER",              //getBean的时候的参数
             "pluginID":"diocpRemoteSvr",  //如果与id一致可以进行忽略
             "lib":"diocp_bean.dll",       //宿主文件名
             "singleton":true,             //单件模式
             "config":
              {
                  "host":"127.0.0.1",
                  "port":9985
              }
          },
       ]
    }

    可以看出上面调用的时候可以完成2个插件,他们使用的实现都是一样的,想想如果我们有两个数据库连接,一个连接业务数据库,一个连接配置数据库,其实他们的实现是一样的,只是连接的地址和端口不一样。

    【单件模式的应用】

    单件模式在MyBean可以引用比较广泛,系统中只需要一个主窗体,有的选取窗体也只需要一个等等。。。大家可以想想你项目中的单件模式,之前是怎么样处理的

  • 相关阅读:
    编译原理实验之SLR1文法分析
    机器学习中的特征选择filter
    按部就班的吴恩达机器学习网课用于讨论(4)
    Linux客户端网口输入转串口输出
    按部就班的吴恩达机器学习网课用于讨论(3)
    关于网络手动搭建的一点补充说明
    按部就班的吴恩达机器学习网课用于讨论(2)
    按部就班的吴恩达机器学习网课用于讨论(1)
    java学习与应用(5.3)--Spring
    java学习与应用(5.2)--Spring Boot 预告篇
  • 原文地址:https://www.cnblogs.com/DKSoft/p/3947373.html
Copyright © 2011-2022 走看看