2013-02-11 77 views
1

我在尋找關於具有此功能的系統的基本設計的建議。Java - 將數據輸入與數據輸出相關聯?

比方說,我有一個數據類是這樣的:

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. 

在每種這些情況下,標題是在同一組中彼此相互排斥,並且一組內的哪個標題適用於該數據是基於一些硬編碼的b使用邏輯。

然後,每個特定的標題都與一些特定的功能相關聯。例如,我可能會說「如果aDefined.YES,調用methodX」或「如果totalTrue.0,則調用methodX然後methodY」。

如果N是標題集的數量,則有N!標題的組合,和N!相關功能的組合。我該如何實現:對於每個節點數據,找到與該數據關聯的一組標題。運行與每個標題相關的功能。

編輯:這不是一個布爾邏輯問題,這是一個設計問題。我的觀點是,我想要一個強大的方法,將數據集與某些名稱或子類關聯起來,並賦予任意業務邏輯。

+0

這是一個功課題嗎? – Olaf 2013-02-11 22:23:00

+0

@Olaf不,這是一個工作問題。 – Jeremy 2013-02-11 22:52:32

回答

1

跳過價值部分
我認爲這應該可以幫到你,但你的問題有點含糊。

//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; 
+0

我想我不清楚。定義個人邏輯並不難。我的觀點是,我想要一個強大的方法,將數據集與某些名稱或子類關聯起來,並賦予任意業務邏輯。 – Jeremy 2013-02-11 22:53:31