找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 15394|回复: 4

批处理面向对象框架1-总框架

[复制链接]
发表于 2012-11-1 12:48:43 | 显示全部楼层 |阅读模式
本帖最后由 wrove 于 2012-11-2 09:30 编辑


  1. 批处理类定义约定:

  2. 1.(1)普通环境变量则不加任何前缀的正常命名;

  3.   (2)普通标签函数以“#FunctionName”格式来命名;

  4.   (3)普通标签函数内部临时变量以“_VarName”格式命名,注意是单下划线;

  5.   (4)类以“@ClassName”格式命名;

  6.   (5)类成员中标签函数成员以“ClassName.MethodName”格式命名;

  7.   (6)类的所有标签函数临时变量以“__VarName”格式命名,注意是双下划线;
  8.   
  9.   (7)类创建的对象用“$ObjName”格式命名,请传递对象名时带“$”符号;

  10.   (8)数组也被视为对象,故请以$ArrayName形式定义;

  11.   (9)可作为一个外部调用单位的标签函数(如类函数成员标签函数与普通标签函数)内

  12.       部如果还有标签函数,则以MainFuncName_SubFuncName的格式命名,其中

  13.       MainFuncName是可作为外部调用主体的标签函数的标签名,这样可以有效的防止

  14.       标签访问错误的出现。因为毕竟内部标签函数不是成员,所以不用“.”号。因为如果类

  15.       库庞大,那么难免内部标签函数会出现冲突,所以用主标签函数的标签名作前缀

  16.   (10)对象只有字段与方法,如果对象的字段也是一个对象,则这个字段请以如下格式

  17.       命名:$ObjName.FieldName,即一个对象链上只出现一个“$”符号

  18.   (11)类私有方法使用ClassName.__MethodName格式命名,私有方法不与对象绑定

  19.   (12)所有类的标签函数,内部在初始化临时变量之后进入标签

  20.       ClassName.MethodName_Begin

  21.       在内部销毁临时变量之前先进入标签:

  22.       ClassName.MethodName_End

  23.       这样如果因为逻辑上的问题要转而调用其他方法则可以在判断块内部先调用:

  24.      Call :ClassName.MethodName_End将当前方法的临时变量销毁,再转调其他方法   
  25.    

  26. 3.数组的数组名$ArrayName.UBound保存数组的最大下标,$ArrayName[n](n为自

  27.   然数)保存元素

  28. 4.为语法上的简洁及功能的强健计:

  29.         (1)所有对象必须先创建,再才可以调用方法,不能一边创建一边调用

  30.         (2)创建对象的语法是如下,这样可以传递足量参数,如果需要的话:

  31.                 Call :@<ClassName> $<ObjName> arg1 arg2 arg3 ...

  32.         (3)调用对象方法的语法如下,这样可以传递足量参数,如果需要的话:

  33.                 Call :%$<ObjName>.<MethodName>% arg1 arg2 arg3 ...

  34.         (4)读取对象属性或字段的语法为:

  35.                 $<ObjName>.<FieldName>

  36. 5.本来是要检查对象名合法性的,不过为了更高的效率,所以还是不要这一步,希望使用者

  37.   严格遵照命名约定来命名对象;

  38. 6.所有实例类都必须有Delete方法(删除对象,清除对象数据即方法绑定)、ToString方法

  39.   (简单地回显对象的字符串表示)、Type属性(简单的保存它所属的类型信息)成员

  40. 7.所有的方法如果需要使用返回值,就用$ObjName.MethodName.Return来返回,记得

  41.   在方法开始执行时,清除上一次的调用结果

  42. 8.总是使用类临时变量__this来接收对象名

  43. 9.静态类创建一个与类同名的对象,并将对象与方法绑定,也提供Delete方法

复制代码
 楼主| 发表于 2012-11-1 12:56:51 | 显示全部楼层
本帖最后由 wrove 于 2012-11-2 02:45 编辑

因为这是基于命名约定的框架,所以请务必遵照其中的命名约定,尤其是函数标签命名及对象命名
发表于 2012-11-1 16:58:26 | 显示全部楼层
这个精华帖电子书里面有个帖子叫做:面向对象的批处理语言(Object Oriented Batch Language)
http://www.bathome.net/thread-1013-1-1.html
可以参考一下
 楼主| 发表于 2012-11-1 21:05:35 | 显示全部楼层
本帖最后由 wrove 于 2012-11-2 02:51 编辑

我想要的是一个真正用代码构建的对象机制,因为语言的语法是语言自己的,而你推荐的文章中提到的

借助文件与目录来实现对象机制,太多借助外力,毕竟我前者可行是因为巧妙的运用自身,而后者的可

行则是因为巧妙的借力于环境。。。没有血浓于水的感觉
发表于 2012-11-2 12:49:40 | 显示全部楼层
感觉批处理速度实在有限,如果能将这些功能集成到像capi.exe这样的命令行工具中,再好不过了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-16 23:46 , Processed in 0.012986 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

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