代码生成器技术乱弹三十九,未来之野望,未实现的功能:可添加编译无错的空方法

原创
2020/04/22 10:55
阅读数 897

代码生成器技术乱弹三十九,未来之野望,未实现的功能:可添加编译无错的空方法

含义
现在动词算子式代码生成支持的功能,具体的方法都已经用超泛型方法实现。但是,一个完整的系统只有这些基础的方法是远远不够的。还需要更多的业务方法。现在的实现是在代码生成后有具体的程序员自行添加业务方法。这种方法不利于项目经理和架构师对项目的控制。有了可添加的空方法,项目经理或者架构师可以在代码生成时,事先约定业务方法的命名,对代码质量至关重要。

实现方案

最简单的是只支持自定义单域方法,在每层API都添加这个方法。形如在User域对象中
addEmptyVerb:Register(User)::Boolean
即可添加一个名为Register的空白动词,此空白动词接受一个User参数,返回值是Boolean。
注意,代码生成后此动词的函数名是RegisterUser

规则,若空白动词中使用了All字段,比如
addEmptyVerb:RegisterAll(List<User>)::Boolean
代码生成后函数名成了RegisterAllUsers
变成了复数。
若空白动词使用了ByPage后缀,代码生成时,Dao层方法名会改用ByLimit后缀。
空白单域动词可以添加其他参数,要给出参数名。
ByPage后缀的参数不加,系统自动按照已有的ByPage后缀的动词的方法处理。

第一阶段先只支持如此。以后可以添加空白双域动词,可以定义某层API空缺。或者添加更复杂的每一层客户化方法。这些方法都没有实现,但是都是编译无错的。

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部