using System.Text;
using System.Collections.Generic;
using System.Linq;
using System;
namespace 观察者
{
public interface IServer
{
void Notice( IClient C);
}
public interface IClient
{
void Show();
}
public class Person : IClient
{
public Person( IServer S )
{
S.Notice(this);
}
public void Show()
{
Console.WriteLine("主人被惊醒了");
}
}
public class Mouses : IClient
{
public Nouses( IServer C )
{
C.Notice( this );
}
public void Show()
{
Console.WriteLine("老鼠被吓跑了");
}
}
public class Tom : IServer
{
ArrayList al =new ArrayList();
public void Notice(IClient C)
{
al.Add( C );
}
public void Runs()
{
Console.WriteLine("猫叫了");
foreach (IClient item in al)
{
item.Show();
}
}
}
class Test
{
static void Main(string[] args)
{
Tom t=new Tom();
Person p=new Person(t);
Mouses m =new Mouses(t);
t.Runs();
}
}
}