我曾经负责创建C#自定义用户控件。它是一个带有一堆可折叠部分的控件。用户可以单击它以在折叠/展开状态之间切换的控件是标签控件。它旁边有一个图像控件,可以更改状态以指示特定部分是折叠还是展开。在控件的某个地方,我需要一个函数来返回任何特定部分的状态。问题是,如果函数根据图像控件的状态返回状态,还是应该引入一个存储状态的附加变量,还有与当前状态不同步的额外风险?
答案 0 :(得分:3)
大多数时候,当人们对这些问题采取“纯粹”的解决方案时,他们只是隐藏耦合,而不是将其删除。耦合通常代表了他们试图解决的问题的基本复杂性。由于它无法删除,因此也可以直接实现。
你的情况也不例外。除非您认为图像控件状态的获取器将来会发生变化(如果您使用的是稳定的框架),使用一个额外的变量,它总是应该与图像控制器具有相同的值。 state只是用稍微隐藏的隐式耦合替换显式耦合。这没有任何好处,增加了复杂性,因此也有潜在的潜力。
答案 1 :(得分:1)
冗余毫无意义。我说只要阅读图像状态,如果可以认为是经验性的。