选择显示字体大小

遭遇asp类的事件设计

作者的blog: http://blog.csdn.net/oyiboy/

我之所以还是要宣扬用mvc来开发asp,只是想让面向过程的思考方式变成面向对象的思考方式,这个对于任何一种语言的开发员来说都是有好处的。
mvc是个标准模型,asp要实现似乎真的是很困难,但是标准是标准,运用是运用,既然asp要实现这个模型很难,那可以尝试着将mvc模型变形成适合自己的模型。
  “不管白猫黑猫能逮到耗子的就是好猫。”而对于我们开发者来说,不管是什么模型,能正确的指引我们的思路,完美完成项目的模型就是好模型。毕竟用户最终用是我们的程序而不是我们的模型。

  这段时间由于接触到mvc,也知道了class的运用方式,遭遇到了事件的设计。

  其实具体的事件设计方式我也不是很明白,在qq里newskyline跟我说了,asp没办法作class的事件,

只能模拟。而我呢。算是为达目的不则手段(写程序而以)的,认为模拟也好,非模拟也行,只要达到我想要的效果就是好东西。

  模拟事件的方式有两种:

  第一种:借用了execute/eval,用一个属性收取函数名的字符,然后使用execute/eval来运行函数。
    如:
      obj.ondataupdatestart="checkdata"
     其构造为:
      public property let ondataupdatestart(byval a_strvalue)
      '在此省略了对a_strvalue的一些严谨的验证代码。
        p_strondataupdatestart=a_strvalue
      end property
    
     事件是触发为:
      public sub dataupdate()
        '...忽略过程...
        execute(p_strondataupdatestart & "(参数变量一,参数变量二)")
        '...忽略过程...
      end sub
    稍微提一下execute和eval的不同点。
    同样的“x=y”。execute("x=y")的结果是将y值赋给x,而eval("x=y")则会返回一个boolean值,表示x与y的测试结果,如x等于y则返回true,反之返回false。

  第二种:借用函数指针getref,在vbs手册的解释上来看就是绑定事件专用的函数。具体解释如下:

    “返回一个指向一过程的引用,此过程可绑定某事件。”
    具体运用例子,如:
      obj.ondataupdatestart="checkdata"
      其构造则改为:
        public ondataupdatestart  '其实可以使用get/let模式,想偷懒了,所以直接声明一个公开变量来传递了。

      事件触发则改为:
        public sub dataupdate()
          '...忽略过程...
          set me.ondataupdatestart=getref(ondataupdatestart)
          me.ondataupdatestart("参数变量一","参数变量二")
          '...忽略过程...
        end sub

  以上两种方式可以实现事件绑定,但是,从解释上来说,我比较推崇第二种,相对于execute/eval来说更为严谨一些。

经典论坛讨论帖:
http://www.blueidea.com/bbs/newsdetail.asp?id=2467752


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons