我有一堆接近100的产品,并且每个产品在DB中都有自己的表,为此我已经为每个产品实现了搜索功能,现在我正在考虑重用代码,因为除了少数参数和表名之外逻辑都保持不变,
String test = request.getParameter(“test”);
test是下拉列表,其中包含有关产品的信息,
我想的方式是
if ( test.equals(ProductA)) {
List<searchbean> list = dao.fetchDBRecords(tableA,other parameters of form);
}
列表中的参数将传递给sql查询。
现在我的问题是,对于多个产品使用单个类是否有意义,或者为每个产品分别设置更有意义。
我问这个有两个原因,在一段时间内,我的代码库似乎增加了很多(300多个类),我需要一种方法来控制它进一步增长。这经常被处理? 。 如果我使用单个类来购买多个产品,我是否会遇到任何我需要注意的并发问题。
答案 0 :(得分:0)
我不喜欢“每个产品的类别”或“每个产品的表格”模型。每次添加或删除产品时,都不必修改代码。你将不得不稍微抽象地思考一下这个问题,但只要你没有走得太远而造成无法识别的混乱,它就值得。
你总是要担心并发问题,但我认为这两种设计都是如此。
你有300多个课程,你会增加更多?你担心并发?当然并发很重要,但你必须首先驯服你的设计。
答案 1 :(得分:0)
你的方式,你会有超过300个比较(if(parameter.equals(product1){...})。更通用的方法是预填充哈希映射并使用查找值参数为关键:
Map&lt; String,String&gt; tableNameMap = new HashMap&lt; String,String&gt;();
tableNameMap.put( “参数1”, “表1”);
tableNameMap.put( “param2的”, “表2”);
String paramValue = request.getParameter(“test”);
String tableName = tableNameMap.get(paramValue);