Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Design patterns 关于观察者模式的原型_Design Patterns_Prototype - Fatal编程技术网

Design patterns 关于观察者模式的原型

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#设计观察者模式的原型。 什么是观察者模式? 观察者模式的原型呢?
在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();
    }
 }
 }

似乎有点模糊。。。