|
|
|
ObserverObserver - паттерн, позволяющий создавать объекты, зависимые от данного и которые получают извещения при каждой смене состояния первичного объекта.
namespace Observer_DesignPattern
{
using System;
using System.Collections;
class Subject
{
private ArrayList list = new ArrayList();
private string strImportantSubjectData = "Initial";
public string ImportantSubjectData
{
get
{
return strImportantSubjectData;
}
set
{
strImportantSubjectData = value;
}
}
public void Attach(Observer o)
{
list.Add(o);
o.ObservedSubject = this;
}
public void Detach(Observer o)
{
}
public void Notify()
{
foreach (Observer o in list)
{
o.Update();
}
}
}
class ConcreteSubject : Subject
{
public void GetState()
{
}
public void SetState()
{
}
}
abstract class Observer
{
protected Subject s;
public Subject ObservedSubject
{
get
{
return s;
}
set
{
s = value;
}
}
abstract public void Update();
}
class ConcreteObserver : Observer
{
private string observerName;
public ConcreteObserver(string name)
{
observerName = name;
}
override public void Update()
{
Console.WriteLine("In Observer {0}: data from subject = {1}",
observerName, s.ImportantSubjectData);
}
}
public class Client
{
public static int Main(string[] args)
{
ConcreteSubject s = new ConcreteSubject();
ConcreteObserver o1 = new ConcreteObserver("first observer");
ConcreteObserver o2 = new ConcreteObserver("second observer");
s.Attach(o1);
s.Attach(o2);
s. ImportantSubjectData = "This is important subject data";
s.Notify();
return 0;
}
}
}
![]() Back |
| Контакт | Реклама на сайте | Спонсорам | Веб мастерам |
Лицензионное соглашение
- © 2000-2010 dotSITE
Хостинг .NET предоставлен
PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development