依赖具体数据的设计
兄弟们,最近遇到一个问题,
举个例子:需求: 报表查询时当书的数量大于10,或者作者是ddd 就会触发一个动作
比如数据库结构:定义了规则需要的变量
模块 Key
001 bookCount
001 author
代码中可能要给对应的key赋值,例如:
map.put("bookCount",10)
map.put("author","ddd")
问题是这样就跟业务结合的太紧,也就是要知道数据库中定义的关键字,编程时需要在代码中写入这些关键字,这样感觉耦合太高,而且规则条件等也可能发生变化,有没有办法进行解耦?谢谢
------解决方案--------------------可以写成配置文件。
程序启动的时候加载这些数据就好了。
------解决方案--------------------
如果是想把 查询 和 “>10 =ddd" 这些特殊处理解耦,
有很多种办法,比如用spring AOP ,把>10 和 =ddd 作成查询方法的切面,
如果觉得spring AOP太麻烦,可以用动态代理把查询过程代理起来,在代理中作特殊处理。
这样查询的代码就是查询的,特殊处理的就是特殊的,二者解耦
而
map.put("bookCount",10)
map.put("author","ddd")这种赋值必然会出现在代码的某个地方中啊,
因为这已经是你的业务参数了,
一般来说用配置文件存储就是比较好的办法了。