我在考虑一个对象结构,它将执行复杂的计算。基于用户的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