源码网,源码论坛,源码之家,商业源码,游戏源码下载,discuz插件,棋牌源码下载,精品源码论坛

 找回密码
 立即注册
查看: 377|回复: 13

[ASP编程] 遭遇ASP类的事件设计

[复制链接]

7万

主题

861

回帖

32万

积分

论坛元老

Rank: 8Rank: 8

积分
329525
发表于 2006-8-27 00:00:00 | 显示全部楼层 |阅读模式
作者的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来说更为严谨一些。 
回复

使用道具 举报

1

主题

2万

回帖

319

积分

中级会员

Rank: 3Rank: 3

积分
319
发表于 2022-8-19 22:18:34 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2022-8-26 16:32:01 | 显示全部楼层
女生看了弄丢了卡萨诺的卡洛斯
回复 支持 反对

使用道具 举报

15

主题

2万

回帖

122

积分

注册会员

Rank: 2

积分
122
发表于 2023-1-1 11:38:34 | 显示全部楼层
vcxvcxv
回复 支持 反对

使用道具 举报

5

主题

2万

回帖

183

积分

注册会员

Rank: 2

积分
183
发表于 2023-8-24 01:43:30 | 显示全部楼层
为全额万千瓦
回复 支持 反对

使用道具 举报

3

主题

2万

回帖

301

积分

中级会员

Rank: 3Rank: 3

积分
301
发表于 2023-10-19 21:16:06 | 显示全部楼层
源码源码源码源码源码源码源码源码源码源码源码源码源码
回复 支持 反对

使用道具 举报

0

主题

1万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2023-12-11 01:11:20 | 显示全部楼层
论坛有你更精彩!
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

58

积分

注册会员

Rank: 2

积分
58
发表于 2024-9-2 11:39:38 | 显示全部楼层
为全额万千瓦
回复 支持 反对

使用道具 举报

4

主题

2万

回帖

262

积分

中级会员

Rank: 3Rank: 3

积分
262
发表于 2024-9-22 14:49:59 | 显示全部楼层
额风风风微风微风违法
回复 支持 反对

使用道具 举报

0

主题

2万

回帖

0

积分

中级会员

Rank: 3Rank: 3

积分
0
发表于 2024-9-26 12:07:20 | 显示全部楼层
天天源码论坛
回复 支持 反对

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

手机版|小黑屋|网站地图|源码论坛 ( 海外版 )

GMT+8, 2024-11-22 07:49 , Processed in 0.167890 second(s), 26 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表