加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – 代表与观察者模式

发布时间:2020-12-15 17:43:07 所属栏目:百科 来源:网络整理
导读:关于何时应该使用委托进行间接关联和观察员,是否有任何指导方针? 在C#中,您可以使用委托进行简单的回调.我想指向函数的指针和指向成员函数的指针也可以被视为委托(我是对的吗?). 我意识到使用观察者,你需要创建一个接口,并实现它,因此它更强类型,关系更正
关于何时应该使用委托进行间接关联和观察员,是否有任何指导方针?

在C#中,您可以使用委托进行简单的回调.我想指向函数的指针和指向成员函数的指针也可以被视为委托(我是对的吗?).

我意识到使用观察者,你需要创建一个接口,并实现它,因此它更强类型,关系更正式.对于委托,只要函数签名和可访问性匹配,您就可以“挂钩”.

代表们是否使观察者模式没有实际意义?你如何决定代表与观察者模式?

解决方法

观察者模式已经以 events的形式为您实现.

事件的优势在于它们可以拥有多个订阅者,而使用委托时,您只能拥有一个订阅者.这使事件更好地适用于公共接口,以及您无法完全控制谁想要通知事情发生的情况.实际上,事件只是自动管理的代表列表.您必须在您的场景中看到更有意义的内容.

编辑:As commenter Rabbi mentions,上述情况并非完全正确,因为任何委托都可以成为多播委托.事件修饰符的目的是创建一个只能在定义它的类中调用的委托.这对于确保公共接口中的封装非常有用.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读