我们希望基于表中的记录实现业务逻辑。我们有两个选择。
一种方法是在代码中为表中的每条记录创建一个枚举,并在代码中将枚举与读取记录进行比较,以确定接下来的逻辑。该系统的一个缺点是,如果表中的键发生变化(例如在自动编号字段中),则需要重新编译应用程序以反映更改。
第二种方法是将变量存储在表中每条记录的配置文件中,并在代码中将config变量与读取记录进行比较,以确定接下来的逻辑。使用此系统的drwback是可以操作配置文件,应用程序将停止工作。
这件事的最佳编程模式是什么?
答案 0 :(得分:2)
为什么不把它们放在一起,在数据库中放一个表,告诉你接下来哪个业务记录表?
对不起,我无法给出更好的答案。我需要更多关于您的业务逻辑尝试做什么以及这些记录可以订购的信息。
答案 1 :(得分:1)
我赞成你的第一种方法。如果逻辑变化足以要求更改自动编号字段(通过删除旧记录或添加新记录),则无论如何都必须更改代码以反映新范例。
答案 2 :(得分:0)
枚举应该是静态的,不变的。如果您有一个需要更改枚举的解决方案,那么枚举是错误的解决方案。
外部配置确实遇到了你提到的问题,所以它也不总是一个好的选择。为了帮助解决这个问题,您可以对其进行加密,因此无法轻松修改。
另一种方法是创建一个资源dll,它将配置文件作为资源,因此不易修改。当您确实需要进行更改时,您只需要编译资源dll并仅部署该资源而不是整个应用程序。
Scott Langham提到在数据库中使用配置表。这也是一个好主意。你的设置可以实现吗?
答案 3 :(得分:0)
听起来像状态模式。我想你有一个表存储与应用程序中每个状态相关联的状态(ID,名称)和逻辑。给定一个状态ID,给定您必须执行的逻辑。你必须解决如何实例化正确的状态,如果你正在使用ORM,你可以使用鉴别器(在这种情况下是状态ID)。