请原谅我,如果这是一个愚蠢的问题,我承认我没有想太多。什么时候使用回调而不是c#中的事件?
但是,当你喜欢使用回调(即传入Func或Action)而不是暴露和使用事件?
UPDATE
是什么促使这个问题是以下问题:
我有一个ThingsHandler类, 可以与ThingEditor关联。 的ThingsHandler处理的 事情的清单,知道他们的订单,其中之一是“当前”,当新 那些增加或删除等
的ThingEditors可以只修改单个 事情。
的ThingsHandler需要提醒 的ThingEditor当用户选择 一个新的东西进行编辑,并ThingEditor需要提醒 ThingsHandler当用户说 “完成”的 。
令我困扰的是这两个类持有对方的引用 - 虽然我认为这是不可避免的 - 或者在两个方向上绑定事件。我想知道在一个方向上使用回调是否“更清洁”。
我怀疑这是一种设计模式,并为我的无知(懒惰)谦恭地道歉。
该死,你让我的大脑再次受到伤害:)在我目前的代码中,这些类远离现实世界中的任何东西,我不知道我会从哪里开始...(查看更新后的问题) – Benjol 2010-01-08 06:42:43
好的答案,并总结:事件是通知(生下),回调是请求(吃食物)。将此与现实世界相关联,你会得到一个用长颈鹿作为对象的用例图,用户作为动物处理程序(或者爆米花把它穿过酒吧的小孩) – Codesleuth 2010-01-08 09:23:55
不仅难以消化,而且很难翻译..最终它是值得的!谢谢埃里克。 – 2013-12-09 22:40:45