c# – 代表与观察者模式

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

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

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

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

解决方法

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

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

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

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...