CTK-接口、插件、服务

0、概念

接口就是纯虚函数类,也就是最终的服务的前身;

插件就是实现这个接口类的实现类,所以理论上有多少个实现类就有多少个插件。注意每个插件都有自己的注册器Activator;

服务就是根据接口的实例,每生成一个服务就会调用一次注册器的start。

一句话总结就是:把接口当做类,服务是根据类new出的对象,插件就是动态库dll

1、1对1

 1个接口类由1个类实现,输出1个服务和1个插件。

2、多对1

   1个类实现了2个接口类,输出2个服务和1个插件,无论想使用哪个服务最终都通过这同一个插件来实现

3、1对多

    1接口由2个类实现,也就是某一个问题提供了2种解决思路,输出1个服务和2个插件,通过ctkPluginConstants::SERVICE_RANKING和ctkPluginConstants::SERVICE_ID来调用不同的插件。这里虽然有两个插件,但都是被编译到同一个dll中的。

ps:

①、某插件每次调用另一个插件的时候,只会生成一个实例,然后把实例存到内存当中,不会因为多次调用而生成多个服务实例。

原文地址:https://www.cnblogs.com/judes/p/13220739.html