2010-06-10 50 views
0

我有一些代码将一个域对象转换为第二个域对象。第二个对象中的一个字段值通过包含大量“If then else”和返回语句(100行代码)的长函数进行翻译。您可以说,第一个对象中的几个字段用于确定第二个域对象中的1个字段的值。翻译/规则模式

现在对于这个问题,有没有一种模式可以使这个更具可读性? ...也许为股东提取这些规则?

+0

这些条件是什么样的?他们检查相同的价值,还是测试不相似的条件?如果他们测试相同的值,则可以用交换机或查找表替换它们。 – Rudi 2010-06-10 11:07:02

回答

0

听起来像商业逻辑给我。查看我的雇主提供的a screencast showing modeling of decision tables。这是一种吸引商业利益相关者的方式,因为它们也能够自己提供这样的规则,例如,进行修改并提供新的规则。

虽然不是试图将它封装在干净的业务对象或甚至服务中,但我无法给出基于代码的设计模式来解决这类问题。