持久层和展示层中只有键值对,自定义类型只出现在中间的业务层中

14-12-19 liangshan
    

Query和Repository的返回值有个明显的不同,Query返回的应该是基本的键值对形式,键值对中的值应该是基本类型的。而Repository是实体仓储,实体仓储返回的是实体对象(Repository中的任何操作至多影响一个实体)。

Query面向的是数据,Query是想要得到满足给定条件的数据,Query接口不关心使用者拿到这些数据后要干什么,不假定是要展示还是要完成某个业务逻辑,Query只返回简单的基本类型的键值对数组,使用者自己负责处理这个键值对数组。

在展示层只需要key为string值为基本类型的键值对,除了键值对外不需要任何其它强类型模型。非基本类型,非键值对字典类型的类型只在中间的业务逻辑层有用。db层和展示层都是只认基本类型和键值对数组的。

http request和response文档本身就是键值对,html的表单也是键值对,关系数据库是键值对,任何数据库都是键值对。

所有的逻辑都会在中间的业务逻辑层中去保证,两头的展示层和持久层所需要做的只是展示和存储键值对。键值对就是映射,信息就是映射。

上次提到两棵树:一棵静态的资源结构树 和 一棵动态的资源运动树。

静态的资源结构树是进程,动态的运动树是线程;

keyVallue主客体二元组上的key是动态的运动树上的节点,而value是静态的资源树上的节点。