我在考慮一個對象結構,它將執行復雜的計算。基於用戶的GUI上的條目完成計算。複雜計算器的對象模型
的表現公式是這樣的:
A = B+C;
B = D*E;
C = C; (simply value insert by the user)
D = C/E;
E = C*C;
用戶可以對所有的值輸入值(A至E /在實際項目中,大約有210變量)。如果不可能開發一個數學公式來計算其他值,它將通過迭代值完成,直到找到一個「工作設置」。
我現在在考慮以下結構: 每個變量都是數據類的對象。每個數據類可以在其他數據類上註冊一個偵聽器來獲取值更改事件。如果數據類獲取值更改事件,它會重新計算自身,並通知所有偵聽器關於它自己的數據更改。
現在的問題如下: 如果此鏈中的最後一次計算得到結果,輸入的值不可能(例如「除以零」),它會將其值設置爲最接近的可能值(在這種情況下是1)。然後,鏈中的所有計算必須以相反的順序再次完成。
在你的眼中,是否有比這個基於聆聽者的結構更好的結構,每個人都重新計算,如果他檢測到觀察變量發生變化事件(有210個可變參數,我將放棄概述計算什麼,何時和爲什麼;中央計算結構似乎對我更可維持,但我無法想象中央計算單元的良好結構)。
歡迎任何意見和建議! 乾杯, 瓊
感謝您的回答:我正在讀Java中的RP,但到現在爲止我沒有找到具體的實現。也許我會在這裏獲得更多信息 - 無論如何,我會回到你身邊。謝謝這麼久。 –
@Patrick我也對這個感興趣,並且搜索了一段時間。不幸的是,我找不到一個正在實施響應式編程的活動/工作項目。你能在答案中提供一個或兩個例子嗎? – Erik