Observer

Observer

Behavioral pattern

This design pattern allows us to observe the changes suffered by an object, that is, if the observed object suffers any change, a notification will be sent to the observers; this is known as publish-subscribe. Observer is one of the main design patterns used in the development of graphical user interfaces (GUI), because it allows us to decouple the graphical component from the action to be performed.

Observer design pattern structure
Observer design pattern structure

The components included in the pattern are:

  • IObservable: Interface which must be implemented by all objects subject to observation, in it, all the basic implementable methods are defined.
  • ConcreteObservable: This is the observable class; it implements IObservable along with its methods.
  • IObserver: Interface which must be implemented by all objects in charge of observing the changes on IObservable.
  • ConcreteObserver: Concrete class in charge of watching the changes on IObservable, it inherits from IObserver and must implement its methods.
Observer pattern sequence diagram.
Observer pattern sequence diagram.
  • ObserverA registers into the Observable object in order to be notified of any changes.
  • ObserverB registers into the Observable object in order to be notified of any changes.
  • The status of the Observablechanges.
  • All the Observers are notified that a change has occurred.

Real-world example

By implementing the Observer design pattern, we are going to develop an application that loads the system configuration at the start. This configuration will automatically notify all the observer objects of any changes that would happen in order to let the user know about them. The purpose of this approach is to keep the objects from having to constantly check for changes.

Discover how the Observer pattern can help us solve this problem.
Discover how the Observer pattern can help us solve this problem.

About this book

Introducción a la arquitectura de software

Everything you just saw in this article is only a small part of the book Introduction to design patterns, the most complete book of design patterns in Spanish, we cover 25 design patterns along with 25 real-world projects. Forget about learning design patterns with typical Internet examples of how to make pizza, animals, and geometric shapes. I invite you to see my book:

See book
All rights reserved ©