AD基于这样一种设计思想:把域模型中实体类对应的实体表的定义放到表AD_TABLE和AD_COLUMN两个表中,这就是所谓的Application Dictionary(简称AD)了。
AD的使用是首先在数据库中创建一个实体表(Tablename),然后把表名(Tablename)映射到AD_TBALE表的TABLENAME列中,再把实体表(Tablename)的列名映射到AD_COLUMN表的COLUMNNAME列中。这样就完成了AD配置或装载。
那么它的好处是什么呢?
第一、可以通过AD自动生成域模型中的实体类代码。在Compiere中是通过执行generateModel工具实现的。
第二、可以通过AD自动生成界面中的表单窗体。在Compiere中一个表单窗体Window(AD_WINDOW)是由几个Tab选项卡构成,而Tabs选项卡又由几个Field文本框构成。显然这种结和AD比较象,那么我们让Tab(AD_TAB)和AD_TABLE映射,让Field(AD_FIELD)和AD_COLUMN映射,这样就很容易生成一个动态表单窗体了。
第三、可以通过AD自动生成数据库的实体表。(不过Compiere并没实现这步)。
AD其实就是一个类工厂,你要什么,它就生产什么。