我遇到了一个设计问题,我确信设计模式存在,我想知道这种模式并更深入地了解攻击它的最佳实践。
我有一个用于输入时间间隔的交互式界面。此时间间隔限制了天数(d),小时(h),分钟(m)和秒(s):
d< = c(给出c)
h:m:s< = 5:30:00
在上面的界面中,您可以手动更改旋钮(那些圆形仪表)以获得每个参数的值(有4个旋钮,3个同心和1个独立)。此外,您可以自己编辑文本框,旋钮应该反映您的更改。当然,当您旋转旋钮时,旋转期间值会发生变化,而不是在移动稳定后。这意味着一系列事件发射和许多角落案件要处理。例如,假设h:m:s为4:38:00,用户增加小时数。而不是简单的5:38:00,除了增加天数,它应该是0:08:00,如果天已经是最大值,则应该是5:30:00。
目前发生的事情是所有逻辑都写在文本框的TextChanged
事件中,而旋钮'ValueChanged
事件只会更改相应文本框中的文本,从而触发{{1}事件。所以一般的问题是,如何处理这样的场景 - 许多对象相互改变并以循环方式相互依赖?请注意,当您旋转旋钮时,文本框可以拒绝更改,从而在旋转时将前一个值重新分配给旋钮的指针。
答案 0 :(得分:0)
我认为MVVM可以很好地适用于您的方案。你有:
此方法隔离了两个视图,并允许您在一个位置(模型或控制器,如果要添加MVC pattern)维护值周围的逻辑。 viewmodels还封装了您在UI上处理事件的方式。