浅谈插件开发

    什么是插件呢? 实际上, 我们在前面的文中已经说过了。 本来来小议论插件开发。

 

    买了新房子, 人可以住到里面去, 但往往需要安装各种插件(床啊, 桌子啊), 让人过的更舒服。

    很早以前, Word软件是不支持转pdf功能的, 后来人们开发了插件, 功能更加强大。

    从广义上来说, 配置文件也是一种插件, 在其中填写东西,被集成到软件中使用。

    从更广义的角度来看, 软件中的各项设置, 就透露和插件的味道。

 

    总之, 插件是为了使主件更加完善(通常, 如果没有插件,主件也能发挥功能)。 下面, 我们来玩代码:

 

#include <stdio.h>
int main()
{
	return 0;
}

 

    实际上, 无论是在Windows还是linux中, main函数都是会被系统调用的, 所以, 在这个意义上来说, 在上面程序中,系统就是主件, main函数不过是个插件而已, 也就是系统留给应用程序员(比如你我)的接口,这个接口叫回调接口。 我们往里面塞东西, 最终被系统调用。

     

    如果你还没有弄清楚, 那怪我。我来继续说,咱们忽视什么叫系统, 什么叫系统调用main函数。看如下代码:

 

#include <stdio.h>

void apiDoAAA();
void apiDoBBB();


// call back api
int business()
{
	apiDoAAA();


	// add business code here
	// ...
	
	
	apiDoBBB();
	
	return 0;
}


// function api
void apiDoAAA()
{

}

// function api
void apiDoBBB()
{

}

// main framework
int main()
{
	int iRet = business();

	return 0;
}

 

    可以看到, main调用了business函数, main是主件, business是插件, 写插件的人负责在process接口中填写东西即可。 此时, 我们可以把可以说main是框架代码, 而business是业务代码。

 

    在很多大公司中, 有专门的开发人员开发一套框架, 我们可以叫它组件或者主件, 这套框架可以运行, 但里面运行的东西是没有什么业务意义的, 上层开发人员只需要借助于这个框架, 往里面塞业务东西就可以了。 此时, 框架开发人员无需关注里面是什么业务,只需要关注框架是如何运行的。 而上层的开发人员不需要过多关注框架细节, 只需要关注具体业务就行。 从这个意义上来讲, 组件是通用的, 各种业务都可以用它, 而上层开发人员往里面塞的东西就可以叫业务插件(通常是动态库或者可执行的安装文件)了。

    此时, 插件是卖钱的根本所在。 我们要理解清楚, 框架会提供两种接口给上层应用程序:

    1. 回调接口(上层应用程序在其中填写东西, 这个回调接口最终被框架调用), 如上面的business.

    2. 被调接口(框架提供的一些函数, 里面的功能已经ok, 上层应用程序直接来调用这些函数), 如上面的apiDoAAA和apiDoBBB.

 

    框架和上层应用程序的分工棒棒哒。 当然如果你玩过MFC, CocoaTouch之类的东西, 那就更容易理解框架和应用代码之间的关系了, 你中有我, 我中有你, 相互调用。

 

    OK, 本文先聊到这里, 希望有助于大家理解插件和插件开发。

 

 

 

      

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值