我必须触发一组查询(比如N,这是在运行时从DB决定的)。
每个查询Qi,都会有一些变量(比如V1,V2 ... Vj)。输入将以密钥,值对的形式提供。
这些查询的结果将是我必须返回的键值对。
实施例。
select * from t where a="ME";
PS:这只是一个例子。我没有解雇数据库查询。
我打算将查询作为字符串参数传递给变量的一些占位符,并为KEY-VALUE对传递一个映射,用于替换(KEY名称将用于标识占位符)。
上面的输入查询
String query = select * from VRIABLE_FROM_TABLE where a=VARIABLE_WHERE_1;
查询字符串也将从DB中获取。
输入地图将是:
FROM_TABLE->t
WHERE_1->"ME"
我错过了什么吗?任何面向对象的问题?
设计这个的最佳方法是什么?
答案 0 :(得分:0)
您可以尝试实现Command Pattern:为命令定义一个公共接口,并让命令执行者负责调用命令。
这样,您可以拥有任意数量的命令,因为命令执行程序可以接收实现Command接口的类的集合;此外,执行程序与命令的内容分离,可以使用所需数量的参数单独实例化。