Observação Você pode conferir outras postagens no meu site pessoal: https://hbolajraf.net
O Observer Pattern é um padrão de design comportamental onde um objeto, conhecido como sujeito, mantém uma lista de seus dependentes, chamados observadores, e os notifica sobre quaisquer mudanças de estado, geralmente chamando um de seus métodos. Este padrão promove um acoplamento frouxo entre objetos, já que os observadores estão cientes apenas do sujeito e não uns dos outros. Em C#, esse padrão é comumente usado em programação orientada a eventos.
Vamos entender o Observer Pattern através de um exemplo detalhado em C#.
Primeiro, definimos uma interface para o assunto. Esta interface conterá métodos para registrar, cancelar registro e notificar observadores.
public interface ISubject { void RegisterObserver(IObserver observer); void UnregisterObserver(IObserver observer); void NotifyObservers(); }
A seguir, definimos uma interface para o observador. Esta interface conterá um método que o sujeito chamará quando precisar notificar os observadores.
public interface IObserver { void Update(); }
Agora, vamos implementar uma classe de assunto concreta que implemente a interface ISubject.
public class ConcreteSubject : ISubject { private Listobservers = new List (); public void RegisterObserver(IObserver observer) { observers.Add(observer); } public void UnregisterObserver(IObserver observer) { observers.Remove(observer); } public void NotifyObservers() { foreach (var observer in observers) { observer.Update(); } } }
A seguir, vamos implementar uma classe de observador concreta que implemente a interface IObserver.
public class ConcreteObserver : IObserver { public void Update() { Console.WriteLine("Observer notified of state change."); } }
Agora, vamos ver como podemos usar essas classes juntas.
class Program { static void Main(string[] args) { ConcreteSubject subject = new ConcreteSubject(); ConcreteObserver observer1 = new ConcreteObserver(); ConcreteObserver observer2 = new ConcreteObserver(); subject.RegisterObserver(observer1); subject.RegisterObserver(observer2); subject.NotifyObservers(); subject.UnregisterObserver(observer1); subject.NotifyObservers(); } }
Neste exemplo, ConcreteSubject é o sujeito e ConcreteObserver é o observador. Quando NotifyObservers() é chamado, ambos os observadores são notificados sobre a mudança de estado. Após cancelar o registro de um observador, apenas o observador restante será notificado.
O Observer Pattern é uma maneira poderosa de implementar a comunicação entre objetos em C#. Promove acoplamento fraco e pode ser particularmente útil em arquiteturas orientadas a eventos. Ao compreender e implementar esse padrão, você pode escrever um código mais sustentável e escalonável.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3