zoukankan      html  css  js  c++  java
  • C#委托

    委托练习

    请用Observe模式写出以下代码:   模拟水壶烧水的情况,当水的温度发出“嘟嘟”的声音。   
      看到这道题时,感觉他就是我们平时的例子,其实生活处处皆学问就看你有没有留心了。当看到题时,先想一下需要创建的对象:1、  水壶 2、 警报器

         首先要先考虑一点:既然是委托,那究竟谁是委托方?谁是监视方?发布委托的又是谁,谁来执行这个动作?理清好这个思路其实就不难了。
        其实发布委托者就是就是委托者也是被监视方,而接受委托方就是监视方也是,这个动作也是有监视方来执行的,但是,还要由发布者来发布这个命令才行。
    问题搞清楚了代码就很清晰了....思路清晰了,那我们开始代码分析....

    第一步:定义一个委托类...

    public delegate void DelEbullition();    //定义一个沸腾的委托

    第二步:定义一个发布委托类水...

    public class Water
     {}        /*发布委托方, 被监视方*/

    第三步:对一个接受委托方的警报器类..

    public class Alarm    //定义一个警报器类
    {}

    下面我们来看一下参考代码:

    View Code
     1 public delegate void DelEbullition();    //定义一个沸腾的委托
     2  public class studyDelegate
     3  {
     4      public static void Main()
     5      {
     6         Water w = new Water();
     7         Alarm  a = new Alarm();
     8         //发布一个水沸腾的委托
     9         w.ds = a.DDEbullition;
    10         //发布一个谁没沸腾的委托
    11         w.dn = a.DBEbullition;         //在传递的时候方法不能传递()
    12         //开始执行
    13         w.Ebullition();
    14 
    15      }
    16  }
    17  /*发布委托方,
    18  被监视方*/
    19  public class Water
    20  {
    21     public DelEbullition ds= null; //发布一个沸腾时的委托
    22     public DelEbullition dn = null;//发布一个不沸腾时的委托
    23     public void Ebullition()
    24     {
    25        for(int i = 0;i<=100;i++)
    26         {
    27               if(i < 90)
    28              {
    29                db();
    30               }else
    31               {
    32                de();
    33               }
    34         }    
    35     }
    36  }
    37  /*接受委托方
    38    监视方*/
    39 public class Alarm    //定义一个警报器类
    40 {
    41      public void DDEbullition()
    42     {
    43        Console.WriteLine("水烧开了,嘟嘟!");
    44      }
    45      public void DBEbullition()
    46     {
    47        Console.WriteLine("谁还没烧开,请等一会...");
    48      }
    49 }
  • 相关阅读:
    dojo grid 组件
    在xpage开发的时候出现xsp is not defined的错误
    关于Xpages中ssjs库相互引用的问题
    Xpages下实现输入智能提示(TypeAhead)功能
    Xpage中对定制控件在设计视图下外观的定制
    xpage中关于dojo版本的配置
    数据库查询优化方案
    查询表结构
    经典SQL语句集锦
    c#导出PDF
  • 原文地址:https://www.cnblogs.com/QLJ1314/p/Delegate.html
Copyright © 2011-2022 走看看