我正在寻找有关具有此功能的系统的基本设计的建议。
假设我有一个这样的数据类:
Class nodeData
boolean aValue;
boolean bValue;
boolean cValue;
使用一些业务逻辑,我为这个数据所代表的节点定义了相互排斥的标题集。
例如,我定义了这个标题:
Singular.YES means Only one of aValue, bValue, cValue is true
Singular.NO means 0 or more than 1 of aValue, bValue, cValue is true
或者这个:
aDefined.YES means aValue is true.
aDefined.NO means aValue is false.
或者这个:
totalTrue:.0 means 0 of the values are true
totalTrue.1 means 1 of the values are true
etc.
在每种情况下,同一集合中的标题相互排斥,并且集合中的哪个标题适用于该数据是基于一些硬编码的业务逻辑。
然后,每个特定的标题都与一些特定的功能相关联。例如,我可能会说“如果 aDefined.YES,调用 methodX”或“如果 totalTrue.0,调用 methodX 然后调用 methodY”。
如果N是标题集的数量,那么有N!标题和 N! 的组合 相关功能的组合。如何完成:对于每个节点数据,找到与该数据关联的标题集。运行与每个标题相关的功能。
编辑:这不是布尔逻辑问题,这是一个设计问题。我的观点是,我想要一种可靠的方法,将数据集与给定任意业务逻辑的某个名称或子类相关联。