close

DogDoor class : 

public class DogDoor
{
private Boolean open;

//建構子初始化門的狀態
public DogDoor()
{
this.open = false;
}

//打開狗門
public string OpenDoor()
{
open = true;
return("The dog door opens.");
//這裡可以加寫等待五秒或幾秒後呼叫關閉狗門的方法
}

//關閉狗門
public string CloseDoor()
{
open = false;
return ("The dog door closes.");
}

//回傳狗門目前狀,是否打開
public Boolean isOpen()
{
return open;
}
}

 

Remote Class :

public class Remote
{
//宣告一個DogDoor class之型別變數 : door
private DogDoor door;

public Remote(DogDoor door)
{
//將傳入之參數door値指派給一開始宣告的door
this.door = door;
}

public string pressButton()
{
//呼叫判斷門目前狀態,若打開執行關門方法
if (door.isOpen())
door.CloseDoor();
else//若關閉,執行開門方法
door.OpenDoor();

return "You press the button.";

}
}

 

BarkRecognizer Class: 

public class BarkRecognizer
{
//同樣方式,將傳入參數指定給給宣告的field
private DogDoor door;
public BarkRecognizer(DogDoor door)
{
this.door = door;
}

//狗門接收狗叫聲之方法
public string recognize(string bark)
{
//只是用來接收開狗門後回傳的字串而已(就是回傳門打開了~)
string doorStatus;

//狗門廳到聲音將門打開,這方法中過幾秒會把門關上
doorStatus = door.OpenDoor();
return ("BarkRecognizer: Heard a '" +bark + "'"+doorStatus);
}
}

 

webPage .CS:

protected void Page_Load(object sender, EventArgs e)
{
DogDoor door = new DogDoor();

//自動關門:把要開或關的門指定給BarkRecognizer類別
BarkRecognizer recognizer = new BarkRecognizer(door);

//手動關門:把要開或關的門指定給Remote類別
Remote remote = new Remote(door);

Response.Write("Fido starts barking."+"<br/>");
//傳入叫聲,將門打開,打開門方法有過幾秒會自動關門
Response.Write(recognizer.recognize("Woof")+"<br/>");
Response.Write("Fido has gone outside..."+"</br>");
Response.Write("Fido's all done..." + "</br>");

//上完廁所要回來了
Response.Write("...but he's stuck outside!"+"</br>");
Response.Write("Fido starts barking."+"</br>");
//傳入叫聲,將門打開,打開門方法有過幾秒會自動關門
Response.Write(recognizer.recognize("Woof")+"</br>");
Response.Write("\nFido's back inside...");
}

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 melomelo1988 的頭像
    melomelo1988

    melo 唐

    melomelo1988 發表在 痞客邦 留言(0) 人氣()