浅谈C#插件式程序的开发(一)

近日,在金旭亮老师的指导下学习用C#开发插件式程序,对插件式程序开发有了一定得心得体会!欲与众码农共享!

什么是插件式程序开发?

插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。插件的本质在于不修改程序主体(平台)的情况下对软件功能进行扩展与加强,当插件的接口公开后,任何公司或个人都可以制作自己的插件来解决一些操作上的不便或增加新的功能,也就是实现真正意义上的“即插即用”软件开发。

插件式程序开发是对面向对象设计原则之“开闭原则”的最好体现,在扩展功能的同时尽可能的少修改主程序代码。

插件是对主程序的功能的扩展。是主程序生命的延续。而且对一个项目的开发进度也起到了一个积极的作用。试想一下:一个项目,有许多功能要进行实现。但是你没有办法一次性的完成。而用插件,你就可以一个功能一个功能的开发。开发好一个插件,你就能用一个功能。插件已经在firebox浏览器及PS上得到了广泛的应用。

其实,我们说大一点,把一个系统比作一个主程序,而系统上安装的每个应用程序就是插件程序。所以学习插件式程序的开发,对计算机的学习也大有好处。

假设你设计的程序已经部署到用户的计算机上,并且能够正常运行了。但是有一天,用户打来了电话——他们要求增加新的功能。确定了用户的需求后,你竟然发现原有的软件架构已经无法胜任新增任务的需求——你需要重新设计这个应用了!但问题是,就算你又用了一个开发周期完成了用户需要的应用,却不能保证用户的需求不会再次变更。也就是说,需求蔓延的可能性依然存在。因此,这种情况下插件构架更能显示出它的优越性。
可以这么说,用它可以带来方便的地方。而且开发它,也很简单。而且这样做主程序根本 就不需要改动。需要插件时,拿来就能用。插件更新,也只要更新这个插件就行。
从程序开发角度来说,一般都是先要开发主程序,决定那些功能由主程序来完成,然后再建立接口,声明接口的内容,这些内容决定着插件的扩展的功能,及方向的。这些都是由主程序开发者预先准备好的。 插件开发者,从主程序开发者那里得到接口的内容,并书写继承这些接口的类,来完成具体的功能。一个程序能实现的功能,基本上插件都能实现。

怎样开发插件式程序?

1.定义主程序,即平台,所有的插件都是基于这个平台,所以这个平台很重要,必须考虑可能的功能扩展。

2.定义接口。这个接口是所有开发的插件都必须实现的,接口中定义了插件开发者可以使用的主程序资源,而主程序亦可以通过该接口访问插件,接口即是主程序和插件联接的“纽带”,关于定义接口的诀窍我在下篇将会提到,不同的插件可能会需要不同的接口,同类型的插件也可能使用相同的接口。

3.对于主程序所提供的资源如果允许插件程序调用,比如窗体、按钮等组件,如果需要告知插件开发者相应的信息还需要定义配置文件,文件中生命了资源的名称和访问方式。

4.主程序中需要有装载插件和解析插件的功能函数,以便插件能够顺利”对接“。

5.建立接口和各个插件的DLL文件
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值