微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 代表与观察者模式

关于何时应该使用委托进行间接关联和观察员,是否有任何指导方针?

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

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

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

解决方法

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

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

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

原文地址:https://www.jb51.cc/csharp/96658.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐