• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

大话OO之解析委托[1]

发布: 2009-11-18 10:47 | 作者: 不详 | 来源: 领测软件测试网采编 | 查看: 34次 | 进入软件测试论坛讨论

领测软件测试网 大话OO之解析委托[1]  软件测试

关键字:oo 面向对象与其说是技术不如说是一种理念,各种面向对象语言或多或少有些差异,但是面向对象的理念却是不变的。在面向对象的定义中并没有委托这个概念,但是委托却是目前的面向对象分析与设计及面向程序设计语言中的必含内容。

    MSDN对委托的定义如下:The delegate keyword is used to declare a reference type that can be used to encapsulate a named or an anonymous method. Delegates are similar to function pointers in C++; however, delegates are type-safe and secure。对于这样的定义,我们可以了解到委托是一种引用,就跟C++中的函数指针一样,只是委托比指针更加安全,不会发生那种指向不正确的内存地址这样的错误。

    如果要从编程的角度来理解委托,确实可以更快一点,但是这样很难理解委托的真正实质。既然有委托,那么就有“委托人”与“被委托”人,那么找出面向对象中的委托人和被委托人就成了理解委托的关键。被委托人是帮助委托人进行本来委托人该做的事情,就比如以前在DOS下编程,需要判断键盘是否有某个健被按下,那么在程序中需要做一个循环,在循环内时刻对键盘扫描码进行获取并判断,这种方式称为轮询。在WIN32编程中也有回调函数这样一个特殊的函数进行系统消息的轮询,一个典型的回调函数如下:

    LRESULT CALLBACK WndProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
    {
        switch(message)
        {
        case WM_PAINT:
            ……
            return 0;
        case WM_DESTROY:
            ……
            return 0;
        default:
            ……
        }
    return -1;
    }

    一旦操作系统有消息发送过来,由回调函数进行处理,看是否有应用程序所需要的消息,如果有则执行相应case 语句中的代码,否则将交给操作系统进行更底层的消息处理。

    如果没有回调函数,那么操作系统的事件则只能直接发送给应用程序中的每一个处理方法,如下图所示。


     引入了回调函数后,处理的方法如下: 

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/

TAG: 解析 大话 委托


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网