Also known as the Observer pattern
, the publisher/subscriber pattern describes a common programming practice where one entity
defines a subscription
service for a certain event
, to which any other entity
can subscribe to. As the event
occurs, all subscribed entities would be notified and be given an opportunity to do work at that time.
For instance, a TCP/IP socket object might define such a subscription service for the event of data arrival. A file logging object might then respond to this event by writing the received data to a local file.
Seeing as this design pattern is so effective (in many instances it can provide a more elegant alternative to inheritance), it's rather surprising that no object-oriented language supports it as a language feature, although Java does have support for this pattern in its core classes library.