读书人

嘱托:委托、事件与Observer设计模式

发布时间: 2012-12-19 14:13:14 作者: rapoo

委托:委托、事件与Observer设计模式

上面的例子已不足以再进行下面的讲解了,我们来看一个新的范例,因为之前已经介绍了很多的内容,所以本节的进度会稍微快一些:

假设我们有个高档的热水器,我们给它通上电,当水温超过95度的时候:1、扬声器会开始发出语音,告诉你水的温度;2、液晶屏也会改变水温的显示,来提示水已经快烧开了。

现在我们需要写个程序来模拟这个烧水的过程,我们将定义一个类来代表热水器,我们管它叫:Heater,它有代表水温的字段,叫做temperature;当然,还有必不可少的给水加热方法BoilWater(),一个发出语音警报的方法MakeAlert(),一个显示水温的方法,ShowMsg()。

}
}

// 显示器
public class Display{
private void ShowMsg(int param) {
Console.WriteLine("Display:水已烧开,当前温度:{0}度。" , param);
}
}

namespace Delegate {
class Heater {
private int temperature; // 水温

// 烧水
public void BoilWater() {
for (int i = 0; i <= 100; i++) {
temperature = i;

if (temperature > 95) {
MakeAlert(temperature);
ShowMsg(temperature);
}
}
}

// 发出语音警报
private void MakeAlert(int param) {
Console.WriteLine("Alarm:嘀嘀嘀,水已经 {0} 度了:" , param);
}

// 显示水温
private void ShowMsg(int param) {
Console.WriteLine("Display:水快开了,当前温度:{0}度。" , param);
}
}

class Program {
static void Main() {
Heater ht = new Heater();
ht.BoilWater();
}
}
}

读书人网 >软件开发

热点推荐