C#委托和事件详解(9)
来源:百度文库 编辑:神马文学网 时间:2024/04/28 15:12:47
委托、事件与Observer设计模式
范例说明
上面的例子已不足以再进行下面的讲解了,我们来看一个新的范例,因为之前已经介绍了很多的内容,所以本节的进度会稍微快一些:
假设我们有个高档的热水器,我们给它通上电,当水温超过95度的时候:1、扬声器会开始发出语音,告诉你水的温度;2、液晶屏也会改变水温的显示,来提示水已经快烧开了。
现在我们需要写个程序来模拟这个烧水的过程,我们将定义一个类来代表热水器,我们管它叫:Heater,它有代表水温的字段,叫做temperature;当然,还有必不可少的给水加热方法BoilWater(),一个发出语音警报的方法MakeAlert(),一个显示水温的方法,ShowMsg()。
以下是引用片段:
namespaceDelegate{
classHeater{
privateinttemperature;//水温
//烧水
publicvoidBoilWater(){
for(inti=0;i<=100;i++){
temperature=i;
if(temperature>95){
MakeAlert(temperature);
ShowMsg(temperature);
}
}
}
//发出语音警报
privatevoidMakeAlert(intparam){
Console.WriteLine("Alarm:嘀嘀嘀,水已经{0}度了:",param);
}
//显示水温
privatevoidShowMsg(intparam){
Console.WriteLine("Display:水快开了,当前温度:{0}度。",param);
}
}
classProgram{
staticvoidMain(){
Heaterht=newHeater();
ht.BoilWater();
}
}
}