实用主义或纯度 - 我们应该依靠GUI框架来存储程序状态吗?

时间:2010-02-03 01:05:11

标签: architecture

我曾经负责创建C#自定义用户控件。它是一个带有一堆可折叠部分的控件。用户可以单击它以在折叠/展开状态之间切换的控件是标签控件。它旁边有一个图像控件,可以更改状态以指示特定部分是折叠还是展开。在控件的某个地方,我需要一个函数来返回任何特定部分的状态。问题是,如果函数根据图像控件的状态返回状态,还是应该引入一个存储状态的附加变量,还有与当前状态不同步的额外风险?

2 个答案:

答案 0 :(得分:3)

大多数时候,当人们对这些问题采取“纯粹”的解决方案时,他们只是隐藏耦合,而不是将其删除。耦合通常代表了他们试图解决的问题的基本复杂性。由于它无法删除,因此也可以直接实现。

你的情况也不例外。除非您认为图像控件状态的获取器将来会发生变化(如果您使用的是稳定的框架),使用一个额外的变量,它总是应该与图像控制器具有相同的值。 state只是用稍微隐藏的隐式耦合替换显式耦合。这没有任何好处,增加了复杂性,因此也有潜在的潜力。

答案 1 :(得分:1)

冗余毫无意义。我说只要阅读图像状态,如果可以认为是经验性的。