Natasha

Back | 中文

Natasha 封装规约

Natasha有自己的封装规则,这可以让封装者思路更加清晰,并让作品更加容易维护。


一个完整的Operator

完整的Operator包括三部分:


脚本构建器(Builder)

作为Operator最重要的核心部分,Builder分为两部分 模板与编译器:




Operator

Operator 在 Builder的基础上进行封装,Builder提供了脚本构建以及编译的大部分功能,因此,Operator的封装需要更专注功能及扩展的开发。
对于扩展而言,Operator或者Builder写好之后,可以根据需要,封装一个扩展方法,给用户使用。
Operator的功能是根据自己的需求进行定制的。

案例

例如 FastMethodOperator 在 OnceMethodBuilder 的基础上进行了包装和简化,FastMethodOpeartor 的初始化函数中定制了一个专属自己的脚本构建流程,如下图:

HiddenNameSpace()
 .OopAccess(AccessTypes.Public)
 .OopModifier(Modifiers.Static)
 .MethodAccess(AccessTypes.Public)
 .MethodModifier(Modifiers.Static);

隐藏命名空间,类使用Public保护级别和静态修饰符,方法使用Public保护级别和静态修饰符,那么这个固定的构造流程将生成如下代码:


using XXXX;
public static class XXXXX{
 public static X Invoke(){
   xxxxxx
 }
}

在编译之后,我们可以拿到Invoke委托函数,就可以直接用了。