Java中Obj-C的委托等价物

Java中Obj-C的委托等价物,java,objective-c,delegates,Java,Objective C,Delegates,在Objective-C中,为了创建和处理连接(NSURLConnection),它有一个委托,委托的方法有didConnect、didFailWithError等,这些方法是根据需要调用的。这是好的和简单的。 Java如何处理连接事件(或类似事件)?听众模式是存在的,一个人是否必须注册才能收听所有内容?自动回调吗?在Java中,等效的机制是EventListener和EventHandler。GUI类中充满了它们的用法示例。它们没有“自动”的功能,您需要显式地为感兴趣的事件注册处理程序。没有与

在Objective-C中,为了创建和处理连接(NSURLConnection),它有一个委托,委托的方法有didConnect、didFailWithError等,这些方法是根据需要调用的。这是好的和简单的。
Java如何处理连接事件(或类似事件)?听众模式是存在的,一个人是否必须注册才能收听所有内容?自动回调吗?

在Java中,等效的机制是EventListener和EventHandler。GUI类中充满了它们的用法示例。它们没有“自动”的功能,您需要显式地为感兴趣的事件注册处理程序。

没有与Objective-C中的委托模式直接等效的功能


通过使用发布-订阅模式,您可以获得几乎相同的结果,发布-订阅模式在Objective-C中由
NSNotificationCenter
实现,在Java中由
EventListeners
EventHandlers
实现。毕竟,委托只是一个类,它保证有一些方法可以调用,让它处理一些晚上


因此,只需声明一个接口或抽象类,其中包含您想要的所有方法,如didConnect等。。。然后,持有委托的类将只调用这些方法,并确保它们将在那里

+1一些框架支持自动注册监听器。请注意,“委托”不是Objective-C的“功能”,而是Cocoa(和许多用户)API经常使用的“模式”。与任何其他类相比,“委托”的支持方式绝对没有什么特别之处。热舔和往常一样正确:委托只是一种设计模式。您可以在任何代码、任何语言中使用基本相同的模式:某个代码块询问另一个代码块是否应该执行某些操作。您真的想了解一般的委托,还是想在Java框架中找到与
NSURLConnection
等效的功能?在这种情况下,唯一的区别是存在抽象类和接口,而不是协议。