Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java——将数据输入与数据输出关联起来?_Java_Design Patterns_Polymorphism - Fatal编程技术网

Java——将数据输入与数据输出关联起来?

Java——将数据输入与数据输出关联起来?,java,design-patterns,polymorphism,Java,Design Patterns,Polymorphism,我正在寻找有关具有此功能的系统的基本设计的建议 假设我有这样一个数据类: 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 aVal

我正在寻找有关具有此功能的系统的基本设计的建议

假设我有这样一个数据类:

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 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!相关功能的组合。如何完成:对于每个节点数据,查找与该数据关联的标题集。运行与每个标题关联的功能


编辑:这不是一个布尔逻辑问题,这是一个设计问题。我的观点是,我需要一种健壮的方法,将数据集与给定任意业务逻辑的某个名称或子类关联起来。

跳过值部分
我认为这会对你有所帮助,但你的问题有点含糊

//checking if one of the 3 bools are true
if((a&&!b&&!c)||(!a&&b&&!c)||(!a&&!b&&c))
    Singular = Singular.YES
else
    Singular = Singular.NO

//checking if one bool is true
if(a)
    aDefined = aDefined.YES
else
    aDefined = aDefined.NO

//checking how many bools are true
int i = 0;
if(a)
    i++;
if(b)
    i++;
if(c)
    i++;
TotalTrue = i;

跳过值部分
我认为这会对你有所帮助,但你的问题有点含糊

//checking if one of the 3 bools are true
if((a&&!b&&!c)||(!a&&b&&!c)||(!a&&!b&&c))
    Singular = Singular.YES
else
    Singular = Singular.NO

//checking if one bool is true
if(a)
    aDefined = aDefined.YES
else
    aDefined = aDefined.NO

//checking how many bools are true
int i = 0;
if(a)
    i++;
if(b)
    i++;
if(c)
    i++;
TotalTrue = i;

这是作业问题吗?@Olaf不,这是工作问题。这是作业问题吗?@Olaf不,这是工作问题。我想我不清楚。定义个人逻辑并不难。我的观点是,我需要一种健壮的方法,在给定任意业务逻辑的情况下,将数据集与某个名称或子类关联起来。定义个人逻辑并不难。我的观点是,我需要一种健壮的方法,将数据集与给定任意业务逻辑的某个名称或子类关联起来。