Senza categoria

c# 옵저버 패턴 예제

패턴을 구현하려면 다음을 제공해야 합니다. 우선, 참여 클래스 나 유형을 알아야합니다. 이 옵저버. OnNext, 새 또는 현재 정보를 관찰자에 제공 합니다. 기본적으로 Observer 디자인 패턴은 응용 프로그램의 구성 요소 간의 통신이 서로 상호 작용하거나 메시지를 보내 서로 에게 알리는 방법을 정의하는 데 사용됩니다. 이 패턴에서 주체는 관찰자 목록을 유지 관리한 다음 상태 변경이 발생하는 시점과 같이 이러한 관찰자 또는 부양 가족에 대해 통보합니다. 런타임시 참관인을 추가하거나 제거할 수도 있습니다. 다음 예제에서는 수하물 클레임 정보를 표시하는 기본 클래스인 도착모니터라는 IObserver 구현을 제공합니다. 정보는 원래 도시의 이름으로 사전순으로 표시됩니다. 도착Monitor의 메서드는 재정의 가능한 (Visual Basic) 또는 가상 (C#)으로 표시 되므로 파생 된 클래스에 의해 모두 재정의할 수 있습니다. 알림이 완료되면 공급자가 관찰자를 제거할 수 있는 IDisposable 구현입니다. 관찰자는 Subscribe 메서드에서 IDisposable 구현에 대한 참조를 수신하므로 공급자가 알림 보내기를 완료하기 전에 IDisposable.Dispose 메서드를 호출하여 구독을 취소할 수도 있습니다. 관찰자 패턴을 구현하기 위한 위의 코드는 매우 간단합니다.

관찰자 패턴을 구현할 수 있는 보다 정교한 방법이 있습니다. 이를 수행하는 한 가지 방법은 관찰자 패턴을 구현하는 데 매우 자연스러운 대리자 및 이벤트를 통해입니다(이벤트 및 대리자 [이벤트 및 대리자]에 대한 내 기사를 살펴보십시오. 작성된 코드는 관찰자 패턴의 구현입니다). C# 자체는 관찰자 패턴을 구현하는 데 사용할 수있는 관찰 가능한 클래스 / 프레임 워크를 지원합니다. 어쩌면 다른 기사에서 관찰자 패턴을 다시 방문하여 해당 프레임 워크를 살펴 보도록하겠습니다. 또한, 우리는 주제 및 관찰자가 풀 알림을 구현하고 푸시 알림을 구현하는 방법에 대해 이야기합니다. 관찰자 디자인 패턴을 사용하면 구독자가 공급자에 등록하고 알림을 받을 수 있습니다. 푸시 기반 알림이 필요한 모든 시나리오에 적합합니다.

패턴은 공급자(주체 또는 관찰 가능)와 0, 하나 또는 그 이상의 관찰자를 정의합니다. 관찰자는 공급자에 등록하고 미리 정의된 조건, 이벤트 또는 상태 변경이 발생할 때마다 공급자는 메서드 중 하나를 호출하여 모든 관찰자에게 자동으로 알깁니다. 이 메서드 호출에서 공급자는 관찰자에게 현재 상태 정보를 제공할 수도 있습니다. .NET 프레임워크에서 관찰자 디자인 패턴은 일반 System.IObservable 및 System.IObserver 인터페이스를 구현하여 적용됩니다.

Founder e direttore di "Perdersi a Roma" ha pubblicato libri di prose, poesie e narrativa di viaggio tra cui "Le persone" (Kolibris) e "Letti" (Voland).