Using System;
Using System. Collections. Generic;
Using System. Linq;
Using System. Web;
Using System. Web. UI;
Using System. Web. UI. WebControls;
Namespace Demo
{
Public partial class WebForm3: System. Web. UI. Page
{
Protected void Page_Load (object sender, EventArgs e)
{
Cat cat = new Cat ();
Mouse mouse1 = new Mouse ("Mouse", cat );
Mouse mouse2 = new Mouse ("big Mouse", cat );
Master master = new Master (cat );
Cat. Cry ();
}
}
Public delegate void SubjectEventHandle ();
Public abstract class Subject
{
Public event SubjectEventHandle subEvent;
Protected void FireAway ()
{
If (this. subEvent! = Null)
{
This. subEvent ();
}
}
}
Public class Cat: Subject
{
Public void Cry ()
{
HttpContext. Current. Response. Write ("The Cat shouted. ");
This. FireAway ();
}
}
Public abstract class Observer
{
Public Observer (Subject sub)
{
Sub. subEvent + = new SubjectEventHandle (sub_subEvent );
}
Public abstract void sub_subEvent ();
}
Public class Mouse: Observer
{
Private string name;
Public Mouse (string name, Subject sub)
: Base (sub)
{
This. name = name;
}
Public override void sub_subEvent ()
{
HttpContext. Current. Response. Write (this. name + "hurry up and run. ");
}
}
Public class Master: Observer
{
Public Master (Subject sub)
: Base (sub)
{
}
Public override void sub_subEvent ()
{
HttpContext. Current. Response. Write ("the master is woken up. ");
}
}
}