java中的业务数据验证方法

时间:2012-10-10 09:37:10

标签: java validation

我陷入了相当复杂的话题。我正在尝试提出一些通用的数据验证解决方案。我们有类似于手机公司客户管理系统的系统,客户拥有充满信息(成本,付款,个人信息,事件档案,债务等)的账户,我需要在多种情况下验证这些数据。我不能忘记有各种帐户,其中一些需要特定的验证。我无法弄清楚的是,这项工作是一些通用,简单和可重复使用的系统。

主要思想是,将会使用许多“约束”(例如:客户必须有名字,如果有债务,不能多付,等等),并且还会有明确的情况(比如帐户取消,付款需求等等。当我想要验证数据时(从代码执行验证不是主题)。情境将包含已验证或为其执行的约束列表。这就是我们想要的。

但是对于这种方法,正确的java方法是什么?所有情境和约束都应该是类吗?情境会有约束实例,而实例会有validate()方法吗?但每个人都有不同的论点。还有其他想法吗?

我知道,这里的答案可能很长,所以我将非常感谢指导我提供有关该主题的一些文档。 非常感谢您的回答!

4 个答案:

答案 0 :(得分:1)

看看这种模式:

Strategy Pattern

Chain Of Responsibility Pattern

它们都可用于构建业务规则验证链/链

答案 1 :(得分:1)

对我来说听起来像Visitor

您有许多实体类型,它们都有一个共同点 - validate()方法。 如果您需要针对同一实体类型的不同验证策略,则可以在每个验证方法中使用Chain of Responsibility,例如:对于帐户首先运行名称验证器,然后运行地址验证器,平衡验证器等。

祝你好运

答案 2 :(得分:0)

您可能需要规则引擎? http://java-source.net/open-source/rule-engines

答案 3 :(得分:0)

看看这个:http://www.visual-rules.com/business-rules-management-software-rules-engine.html

我们正在使用该工具来管理数据一致性。这是一个很好的方法,因为你能够从代码中封装规则。没有IT知识的人能够通过规则建模者管理业务规则。我认为处理业务数据验证是一个很好的概念! HTH