{
void Respo " /> 一级电影在线,中文字幕永久在线视频,国产中文字幕在线播放

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

C#經典機試題(貓叫)

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

  1.要有聯動性,老鼠和主人的行為是被動的。

  2.考慮可擴展性,貓的叫聲可能引起其他聯動效應。

 

public interface Observer
{
void Response(); //觀察者的響應,如是老鼠見到貓的反映
}
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();
}
}

//------------------------------------------------------------
設計方法二: 使用event -- delegate設計..
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#經典機試題(貓叫),轉載需保留來源!

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

主站蜘蛛池模板: 金时厚| 电影《志愿者》观后感| 彭丹丹最惊艳的电影| 超感警探第一季| 挤黑头挤痘痘视频最猛| 2023中国十大廉洁人物事迹| 苹果恋爱多| 赖小子| 血芙蓉电影| 郑洋| 活动评价| 色戒在线观看| 詹妮弗康纳利的电影| 豪勇七蛟龙电影在线观看免费完整版| 燃烧电影| cctv神断狄仁杰第四部免费观看| 仁爱版九年级英语上册教案| 少妇灌肠调教日本视频| 药师心咒全文注音| 爱情重伤| 保镖电影大全免费| 真实游戏在线| 体温36.5度正常吗| 欧美艹| 爱上特种兵电视剧免费观看完整版| 金枝缠梦短剧全集| 内蒙古通辽地图| 电影不知不觉诱惑你| 魔法少女砂沙美| 少爷和我短剧| 夫妻爱情视频| cctv16节目单| 变成黑皮辣妹然后和朋友做| 优越法外电视剧免费观看| 电影同船爱歌| 架子姐姐| 红灯区| 黄子华个人资料简介| 性文章| 官网移动端充值| 都市频道节目表|