我正在构建一个表单管理系统,也就是说,系统将包含许多表单,将保存它们,并对它们执行逻辑,我想使用 DDD 方法来实现。
我想在以后使用 ASP.NET MVC 支持简单的表单布局,到目前为止,我看到的域是这样的:
我将有一个基本表单实体,它应该(现在)有一个名称、字段(和它们的值)和验证逻辑。
我的问题是:
- 我应该如何使用泛型编写字段值对象?我似乎无法弄清楚..
- 我应该将验证逻辑封装在表单中还是使用规范模式来完成?
我正在构建一个表单管理系统,也就是说,系统将包含许多表单,将保存它们,并对它们执行逻辑,我想使用 DDD 方法来实现。
我想在以后使用 ASP.NET MVC 支持简单的表单布局,到目前为止,我看到的域是这样的:
我将有一个基本表单实体,它应该(现在)有一个名称、字段(和它们的值)和验证逻辑。
我的问题是:
我应该如何使用泛型编写字段值对象?我似乎无法弄清楚。
太模糊的问题。稍微指定你的上下文——你试图定义什么样的值对象,为什么你需要泛型等等。
我应该将验证逻辑封装在表单中还是使用规范模式来完成?
验证逻辑去它必须去的地方。域验证逻辑应该封装在规范中,但这不是强制性的。主要的 - 在查看域对象类定义的源代码时,您应该能够弄清楚并理解应用验证。
除了您的模糊描述之外,处理表单是一个本质上不太适合 DDD 的问题。您可以从平面选项列表中构建什么样的对象模型?
当然,您将需要特定于所使用表单的验证逻辑,但简单的 OO 设计会让您走得更远,我看不出 DDD 会在哪里给您买东西。
作为旁注,请查看文档数据库,它们可能比存储在 ObjectDb 或关系数据库中的复杂域模型更适合您的任务。