2014-02-21 3 views
1

, пожалуйста, помогите мне разработать прототип шаблона наблюдателя в C#. Что такое шаблон наблюдателя? Что относительно прототипа шаблона наблюдателя? В C# .NetО прототипе шаблона наблюдателя

+0

кажется несколько расплывчатым ... –

ответ

1

наблюдатель

IObserver.cs

namespace ObserverOPC.Observer 

{ 

    public interface IObserver 
    { 
     void Notify(int t1,int t2); 
    } 
} 

Observer1.xaml.cs

using ObserverOPC.Subject; 

namespace ObserverOPC.Observer 

{ 

    public partial class Observer1 : Window,IObserver 
    {  
     public Observer1() 
     { 
      InitializeComponent(); 
     } 

     public void Notify(int _t1, int _t2) 
     { 
     //get value here 
     } 
    } 
    } 

Тема

ISubject.cs

namespace ObserverOPC.Subject 

{ 

    public interface ISubject 
    { 
     void Subscribe(Observer.IObserver objObserver); 
     void UnSubscribe(Observer.IObserver objObserver); 
     void NotifySubscribers(); 
    } 
} 

OPCAPI.cs

namespace ObserverOPC.Subject 

{ 

    public interface OPCAPI 
    { 
     void Update(); 

    } 
} 

OPCClient.cs

using ObserverOPC.Observer; 

using OPCAutomation; 

namespace ObserverOPC.Subject 

{ 

    public class OPCClient:OPCAPI,ISubject 

    { 
    private IList<Observer.IObserver> _observers=new List<IObserver>(); 

    public void Update() 
    { 
    } 

    public void Subscribe(IObserver observer) 
    { 
     _observers.Add(observer); 
    } 

    public void UnSubscribe(IObserver observer) 
    { 
     _observers.Remove(observer); 
    } 

    public void NotifySubscribers() 
    {   
     foreach (IObserver s in _observers) 
     { 
      s.Notify(_tag1Value,_tag2Value); 
     } 
    } 
} 
} 

MainWindow.xaml.cs

using ObserverOPC.Observer; 

using ObserverOPC.Subject; 

namespace ObserverOPC 
{ 

public partial class MainWindow : Window 
{ 

    OPCClient objOpcClient= new OPCClient(); 
    public MainWindow() 
    { 


     IObserver _client1Observer=new Observer1(); 
     IObserver _client2Observer = new Observer2(); 

     //Register the Observers    
     objOpcClient.Subscribe(_client1Observer); 
     objOpcClient.Subscribe(_client2Observer);   
     objOpcClient.Update(); 

     this.Hide(); 
    } 
} 
} 
+0

Спасибо вам большое – AndroSco

+0

@ElectricRouge Спасибо за редактирование .. –

Смежные вопросы