{
void Respo " /> 成人免费看毛片,中文精品视频,99久久影院

四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

C#經(jīng)典機(jī)試題(貓叫)

  貓大叫一聲,所有的老鼠都開始逃跑,主人被驚醒。(C#語言)

  1.要有聯(lián)動性,老鼠和主人的行為是被動的。

  2.考慮可擴(kuò)展性,貓的叫聲可能引起其他聯(lián)動效應(yīng)。

 

public interface Observer
{
void Response(); //觀察者的響應(yīng),如是老鼠見到貓的反映
}
public interface Subject
{
void AimAt(Observer obs); //針對哪些觀察者,這里指貓的要撲捉的對象---老鼠
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject subj)
{
this.name = name;
subj.AimAt(
this);
}

public void Response()
{
Console.WriteLine(name
+ " attempt to escape!");
}
}
public class Master : Observer
{
public Master(Subject subj)
{
subj.AimAt(
this);
}

public void Response()
{
Console.WriteLine(
"Host waken!");
}
}

public class Cat : Subject
{
private ArrayList observers;
public Cat()
{
this.observers = new ArrayList();
}
public void AimAt(Observer obs)
{
this.observers.Add(obs);
}
public void Cry()
{
Console.WriteLine(
"Cat cryed!");
foreach (Observer obs in this.observers)
{
obs.Response();
}
}
}
class MainClass
{
static void Main(string[] args)
{
Cat cat
= new Cat();
Mouse mouse1
= new Mouse("mouse1", cat);
Mouse mouse2
= new Mouse("mouse2", cat);
Master master
= new Master(cat);
cat.Cry();
}
}

//------------------------------------------------------------
設(shè)計方法二: 使用event -- delegate設(shè)計..
public delegate void SubEventHandler();
public abstract class Subject
{
public event SubEventHandler SubEvent;
protected void FireAway()
{
if (this.SubEvent != null)
this.SubEvent();
}
}
public class Cat : Subject
{
public void Cry()
{
Console.WriteLine(
"cat cryed.");
this.FireAway();
}
}
public abstract class Observer
{
public Observer(Subject sub)
{
sub.SubEvent
+= new SubEventHandler(Response);
}
public abstract void Response();
}
public class Mouse : Observer
{
private string name;
public Mouse(string name, Subject sub) : base(sub)
{
this.name = name;
}
public override void Response()
{
Console.WriteLine(name
+ " attempt to escape!");
}
}
public class Master : Observer
{
public Master(Subject sub) : base(sub){}
public override void Response()
{
Console.WriteLine(
"host waken");
}
}
class Class1
{
static void Main(string[] args)
{
Cat cat
= new Cat();
Mouse mouse1
= new Mouse("mouse1", cat);
Mouse mouse2
= new Mouse("mouse2", cat);
Master master
= new Master(cat);
cat.Cry();
}
}

it知識庫C#經(jīng)典機(jī)試題(貓叫),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 重启之蛇骨佛蜕免费观看完整版| 浙江卫视今晚上8点的节目是什么| 张国强个人简历| 《沉默的证人》电影| 宋学士濂文言文翻译| 小小春| 2025女人最走运头像| 张俪床戏| 成吉思汗电影| 同志父子第二部叫什么| 自拍激情视频| 女生宿舍2在线| borderland| 雳剑 电视剧演员表| 我的英雄学院第三季| 全国面积排名省份| 三陪| 电视剧警察锅哥免费观看全集| 电影《uhaw》完整版在线观看| 周星驰的全部电影免费观看| 男娘曦曦呀曦曦最新| 青山知可子最经典十部电视剧| 敬天法祖| 大团圆李静张娴| 护士诱惑| 无耻之徒英文| 想你的时候问月亮男声沙哑版| 包法利夫人电影| 闵智贤| 舞法天女绚彩归来| 网络流行歌曲2024最火前十名| 美少女战士cosmos| 天下歌词a4纸打印| 无涯:杜琪峰的电影世界 电影| 洪金宝电影| 安全员c证考试免费题库| 手绢舞蹈视频大全| 乔治克鲁尼身高| 贝子鸟叫声十三口| 火辣监狱在线观看| naughty america|