对C#插件接口应用的一些理解

作一程式,边开发边使用,为方便开发与更新,采用插件方式开发,读了网上一些文章,对插件接口有了一些认识:

主程式为程式框架,表现为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)//把主程式开放的接口提供功能模块

不知以上理解是否有错,-_-!!!,

转载于:https://www.cnblogs.com/tihua/archive/2012/10/24/2736912.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值