我有些困惑。考虑以下系统:
以及以下API:
IModule GetModule(string moduleName);
void SetModule(string moduleName);
每个模块都包含一堆参数。
典型的工作流程如下:
- 获取模块(例如,客户端的本地副本)
- 修改该模块中感兴趣的参数
- 设置更新的模块(即调用SetModule通过服务/代理更新实际系统)
现在,我在此工作流程中遇到的问题是,尽管Client1更改了参数,但第二个客户端可能正在基于对系统内部状态的错误假设进行某些操作。
因此,将消息添加到此实现中以使客户端保持同步,但在此之前,真正有用的是摆脱SetModule()方法,并具有在其参数自动更新的参数。客户端更改值。
问题在于,在客户端,我们实际上拥有对象的副本,而不是实际的系统对象,因此甚至可以执行某种操作:
moduleA = GetModule(string moduleName);
moduleA.enable = true; -> But when doing this,the setter for this parameter is called to directly update the param value from within the system instead of the local copy.