作一程式,边开发边使用,为方便开发与更新,采用插件方式开发,读了网上一些文章,对插件接口有了一些认识:
主程式为程式框架,表现为exe,
功能模块作插件,表现为DLL,
主程式动态调用功能模块,功能模块为主程式的一部分,
主程式怎样与功能模块交互呢?
简单点就是功能模块实例化时把主程式当一值传递给功能模块,主程式上各开放的资源交给功能模块控制,爱咋整咋整,不设防
如果是有条件开放整呢?用接口吧
讲究的是标准,规范,约束,小人之心行事
接口咋整:
定义插件接口(主程式就认这个接口,实现这个接口的都是哥们,不拒绝)
定义主程式接口(提供给功能模块调用,把要开放的资源窗口都写在这上面,功能模块能折腾的就这些了)
功能模块实现插件接口,主程式实现主程式接口,
两个接口成了主程式与功能模块通讯的桥梁,双方对话就靠它了
以下代码摘自网络:
Public Interface IPluginsApplication//供主程式使用,由主程式实现 Event Display(ByVal sender As Object, ByVal e As EventArgs) Property Caption() As String Sub DisplayInput(ByVal Text As String) End Interface Public Interface IPlugins//供功能模块使用,由功能模块实现 Sub Connect(ByVal PluginsApp As IPluginsApplication) Sub DIsconnect() End Interface
主程式代码:
Public Property Caption() As String Implements PluginsInterface.IPluginsApplication.Caption Get Return Me.Text End Get Set(ByVal value As String) Me.Text = value End Set End Property Public Event Display(ByVal sender As Object, ByVal e As System.EventArgs) Implements PluginsInterface.IPluginsApplication.Display ... Dim pobj As PluginsInterface.IPlugins pobj.Connect(Me)//把主程式开放的接口提供功能模块
不知以上理解是否有错,-_-!!!,