点睛简单脚本引擎 第二版(源代码)
第二版主要是简化了把 Processor 注册到 Factory 的过程。本来的想法比较简单,只要使用反射,能简化 Add 就可以了,不过后来发现,其实加入 HashTable 的不需要是一个 Processor 对象,只需要是它的类型就可以了,而对应的,Processor 类也就不需要无参数的构造函数,这样从某些方面来说,也更安全一些。
所以,现在的 ProcessorFactory 变化比较大,而 Processor 现在从 IProcessor 直接继承,去除了对于 CreateInstance 的需要,而有参数的构造函数也改成了 Public。
另外,为了能在 Processor 中定义是否把自己加入 Factory,所以设计了一个自定义属性 ActiveProcessorAttribute,必须经过它定义的 IProcessor 才会被加入 Factory,而它也接受一个字符串参数,可以用来定义命令名,如果没有使用此参数的话,则直接使用类名,删除后缀“Processor”之后作为命令名使用。
现在,增加一个新的操作更加简单了,只要从 IProcessor 继承,在构造函数中解析参数,在执行函数 DoProcess 中执行操作,对类使用 ActiveProcessorAttribute 属性就可以了。
对于文件读取,现在改为缺省代码页的方式,而对于有标记的 Utf8、Unicode 文件来说,也同样可以正确读取。
当然,这样使用反射来做这些操作虽然使编写 Processor 的代码更加方便、轻松,甚至更安全,不过,ProcessorFactory 的代码看起来就会有些令人费解的地方,另外,如果要把它移植到一个不支持反射的 OO 语言中,就没有办法,所以在那种情况下,还是需要使用第一版的方法。
本版删除了 Together 的相应文件,有 Together 的网友可以自行重新反向工程得到这些文件,而 wmf 的类图使用的还是第一版的。
点睛简单脚本引擎 第二版(源代码)下载