1)它们是否应该通过任何一组方法在模块中实现? 2)它们是否应该在一个特殊的类中实现,其中每个方法都测试一个特定的业务规则?
另外......你能否就这个问题向我推荐任何好的参考书目?
更新:
“业务规则是业务,公司或公司的规则。规则或约束业务的某些方面并始终解析为真或假”Wikipedia definition.
答案 0 :(得分:3)
首先,您必须明确定义“业务规则”是什么。有一群候选人:
你到底是什么意思?这是一个模糊的问题,如果你愿意,可能会非常大。
您可以在代码中找到更多选择:
你看到你正在打开的问题吗?你的问题意味着你有一个定义明确的问题,并期待一个简单,整洁的答案。事实是,这是一个广泛的话题。
答案 1 :(得分:1)
这是一个非常普遍的问题,很难回答 - 但我要说看看Behaviour Driven Development,将业务规则作为发展的核心。
答案 2 :(得分:1)
我建议你研究一下MVC范例 - 模型视图控制器。视图中应该没有业务逻辑,它应该都在模型中。
答案 3 :(得分:1)
答案取决于多种因素,如
如果上述所有人都回答“是”,那么您正在寻找实施规则的规则引擎(drools,ilog等)
如果你的答案是否定的,那么另一种方法是在代码中对规则进行建模,并牢记以下
E.g。从here
复制EligibleForDiscountSpecification isEligibleForDiscountRule = new EligibleForDiscountSpecification();
isEligibleForDiscountRule .IsSatisfiedBy(customer)
答案 4 :(得分:1)
业务规则最佳实践声明规则应该是可插入组件。极简主义的方法包括在专用库中对它们进行编码,然后继续使用依赖注入或反射...也许您应该调查合同驱动开发,并查看www.businessrulesgroup.org/brmanifesto.htm开始。