[翻译].NET委托:一个C#睡前故事[3]

[入库:2006年2月23日] [更新:2007年3月24日]

本文简介:

bsp;     boss = new Boss();

        peter.Advise(boss);
        peter.DoWork();
 
        Console.WriteLine(“Main: 工人工作完成”);
        Console.ReadLine();
    }
}

 

接口

现在,彼得成了一个特殊的人,他不但能容忍吝啬的老板,而且和他周围的宇宙也有了密切的联系,以至于他认为宇宙对他的工作进度也感兴趣。不幸的是,他必须也给宇宙添加一个特殊的回调函数Advise来实现同时向他老板和宇宙报告工作进度。彼得想要把潜在的通知的列表和这些通知的实现方法分离开来,于是他决定把方法分离为一个接口:

interface IWorkerEvents {
    void WorkStarted();
    void WorkProgressing();
    int WorkCompleted();
}
 
class Worker {
    public void Advise(IWorkerEvents events) { _events = events; }
    public void DoWork() {
        Console.WriteLine(“工作: 工作开始”);
        if( _events != null ) _events.WorkStarted();
 
        Console.WriteLine(“工作: 工作进行中”);
        if(_events != null ) _events.WorkProgressing();
 
        Console.WriteLine("“工作: 工作完成”");
        if(_events != null ) {
            int grade = _events.WorkCompleted();
 
            Console.WriteLine(“工人的工作得分=” + grade);
        }
本文关键:[翻译].NET委托:一个C#睡前故事
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top