O Observer é um padrão comportamental, o objetivo dele é criar um objeto com a função de notificar múltiplos objetos sobre qualquer mudança que aconteça no objeto que está sendo observado por eles.
O padrão consiste basicamente de um vetor que armazena uma lista de referências aos objetos interessados nos estados e métodos públicos que adicionam e removem objetos dessa lista.
class Subject(ABC):
@abstractmethod
def attach(self, observer: Observer) -> None:
pass
@abstractmethod
def detach(self, observer: Observer) -> None:
pass
@abstractmethod
def notify(self) -> None:
pass
class Observer(ABC):
@abstractmethod
def update(self, subject: Subject) -> None:
pass
A classe Subject é uma interface que declara os métodos para controlar quem recebe as notificações e notificá-los.
A classe Observer implementa o método de atualização, usado pelo Subject. Os observadores reagirão as atualizações enviadas pelo objeto monitorado a qual foram acoplados.
A implementação em Python não tem nenhuma particularidade em relação a implementação em Java.
Referências
Padrões de Projeto (Diogo Moreira, 2020)
Mergulho nos Padrões de Projeto - v2020-1.14 (Alexander Shvets, 2020)
Os códigos usados como exemplo foram retirados do livro Mergulho nos Padrões de Projeto.
Top comments (0)