| COBOL | Java |
|---|---|
delegate-id MessageHandler (str as string).
end delegate.
class-id DelegatesEvents.
01 MessageArrived event type MessageHandler static.
method-id Main static.
*> explicit delegate construction
invoke new MessageHandler(MyHandler)
*> implicit delegate construction
declare handler as type MessageHandler = method MyHandler
*> subscribe to an event
attach method MyHandler to MessageArrived
*> raise the event
invoke MessageArrived("Test message")
*> unsubscribe from the event
detach method MyHandler from MessageArrived
*> Throws a null reference exception as there are no subscribers
invoke MessageArrived("Test message 2")
*> Safely raising an #event
declare handler2 as type MessageHandler = MessageArrived
if handler2 not equals null
invoke handler1("Safe message")
end-if
end method.
method-id MyHandler static (str as string).
display str
end method.
end class.
|
// Java has no concept of delegates or events. // Similar behavior is typically achieved by using // anonymous inner classes instead. |
Portions of these examples were produced by Dr. Frank McCown, Harding University Computer Science Dept, and are licensed under a Creative Commons License.