Design patterns 关于观察者模式的原型
请帮助我用C#设计观察者模式的原型。 什么是观察者模式? 观察者模式的原型呢?Design patterns 关于观察者模式的原型,design-patterns,prototype,Design Patterns,Prototype,请帮助我用C#设计观察者模式的原型。 什么是观察者模式? 观察者模式的原型呢? 在C#Net中观察者 IObserver.cs namespace ObserverOPC.Observer { public interface IObserver { void Notify(int t1,int t2); } } using ObserverOPC.Subject; namespace ObserverOPC.Observer { pu
在C#Net中观察者 IObserver.cs
namespace ObserverOPC.Observer
{
public interface IObserver
{
void Notify(int t1,int t2);
}
}
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
}
}
}
namespace ObserverOPC.Subject
{
public interface ISubject
{
void Subscribe(Observer.IObserver objObserver );
void UnSubscribe(Observer.IObserver objObserver);
void NotifySubscribers();
}
}
namespace ObserverOPC.Subject
{
public interface OPCAPI
{
void Update();
}
}
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);
}
}
}
}
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();
}
}
}
observer 1.xaml.cs
namespace ObserverOPC.Observer
{
public interface IObserver
{
void Notify(int t1,int t2);
}
}
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
}
}
}
namespace ObserverOPC.Subject
{
public interface ISubject
{
void Subscribe(Observer.IObserver objObserver );
void UnSubscribe(Observer.IObserver objObserver);
void NotifySubscribers();
}
}
namespace ObserverOPC.Subject
{
public interface OPCAPI
{
void Update();
}
}
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);
}
}
}
}
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();
}
}
}
主题
ISubject.cs
namespace ObserverOPC.Observer
{
public interface IObserver
{
void Notify(int t1,int t2);
}
}
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
}
}
}
namespace ObserverOPC.Subject
{
public interface ISubject
{
void Subscribe(Observer.IObserver objObserver );
void UnSubscribe(Observer.IObserver objObserver);
void NotifySubscribers();
}
}
namespace ObserverOPC.Subject
{
public interface OPCAPI
{
void Update();
}
}
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);
}
}
}
}
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();
}
}
}
OPCAPI.cs
namespace ObserverOPC.Observer
{
public interface IObserver
{
void Notify(int t1,int t2);
}
}
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
}
}
}
namespace ObserverOPC.Subject
{
public interface ISubject
{
void Subscribe(Observer.IObserver objObserver );
void UnSubscribe(Observer.IObserver objObserver);
void NotifySubscribers();
}
}
namespace ObserverOPC.Subject
{
public interface OPCAPI
{
void Update();
}
}
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);
}
}
}
}
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();
}
}
}
OPCClient.cs
namespace ObserverOPC.Observer
{
public interface IObserver
{
void Notify(int t1,int t2);
}
}
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
}
}
}
namespace ObserverOPC.Subject
{
public interface ISubject
{
void Subscribe(Observer.IObserver objObserver );
void UnSubscribe(Observer.IObserver objObserver);
void NotifySubscribers();
}
}
namespace ObserverOPC.Subject
{
public interface OPCAPI
{
void Update();
}
}
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);
}
}
}
}
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();
}
}
}
似乎有点模糊。。。