我有一个PDF表格,其中有450个字段,我将使用数据库中的数据填写它。在PDF中每个字段都有一个独特的名字,我可以做一个映射:什么设计模式适合这种代码味道?
switch (fieldname)
{
case "Name":
value = GetData(Name);
break; // Etc...
case "Date":
value = Date();
break;
default:
value = "";
break;
}
现在看来,这样是会得到非常复杂的快有450个分支,如果被添加其他文件也可能大规模增长。什么是可用于解决这类问题的潜在模式?基本上我想将PDF字段绑定到数据库字段。
*编辑* 所以让我们只说我有一个巨大的switch语句〜450个分支,即路线PDF场的名称,如“名称”“地址”“电话”,为正确的数据库查询执行。除了最终用户选择哪个文档时,字段名称可变时,还可以通过其他方式解决此问题,而不是切换字段名称。
*最后编辑* 我思考了一天,并感谢所有的建议解决方案上来。我有一个名为GetElement()的函数。它将PDF字段名称作为参数并执行一个存储过程,该过程将数据库列和另一过程名称作为映射返回。然后使用一些动态SQL,我传递过程名称和列查找并返回结果。很难在这里选择正确的答案,但是我会把那个推到最近的那个人归功于我。
循环也许?或者你只是不包括他们在你的代码片段? – Bojangles
“填写”是什么意思?为什么要将所有数据写入变量值?此外,您是否真的在寻找设计模式或者查询/数据库处理的工具或技术? – DaveFar
我正在使用数据库中的数据来填充PDF文档。因此,如果在PDF文档中有一个名为'Name'的地方,我会从数据库中返回相应的名称并将其写入文档。我现在有Linq2Sql和iTextSharp用于获取数据和写入PDF的工具。所有的工作,我只能看到这个怪物开关语句从数据库路由数据到文件,它吓我= = – decompiled