如果您使用过动词算子式通用代码生成器,比如光,和平之翼,时空之门,仙童或者莲花。一定对这一类代码生成器的适应性,弹性和灵活性有深刻的体会。并好奇这一切是如何达到的。
其实,这一切的特性都源于动词算子式代码生成器的根本原理:动词算子和域对象的笛卡尔积。
如图所示:
这是一个域对象向量和动词算子向量的笛卡尔积的示意图。显示了两个单域动词ListAll和Add和两个域对象Student和Teacher的笛卡尔积。
值得注意的是,笛卡尔积在计算机技术中有广泛的应用。比如关系型数据库中关系的笛卡尔积和人工智能中矩阵的笛卡尔积。
这是向量的笛卡尔积:
这是矩阵的笛卡尔积:
这样做的好处是提供了更高的抽象等级,从变量和语句升级到了表级抽象,提供了对软件的域对象和动词算子的抽象。
动词算子是一种半方法堆栈,它一旦结合了域对象就可以提供完整的方法堆栈。包括Dao,DaoImpl,Service,ServiceImpl,Controller和两个JS方法,JSButton和JSAction。您可以把这些方法视为动词算子在7个维度上的投影。