我有一个聚合'main'类,其中包含一些我希望分享的数据。 主类还有其他类成员。 我想与这些其他班级成员分享数据。 这样做的最正确/最好的方法是什么?
我具体的例子如下。主要类是.net表单。我在主窗体上有一些控件(实际上是控件内的控件),需要访问共享数据。
Main Form
- DataX
- DataY
- Control1
-- Subcontrol1
- Control2
-- SubControl2
SubControls 1和2都希望访问DataX和DataY。
麻烦的是,我觉得更好的做法(减少耦合),是否要么子控制不应该知道主要形式,或主要形式不应该知道子控制 - 可能是前者。
对于不了解Main Form的子控件,可能意味着Main Form传递对控件1和2的引用,而控件1和2又将引用传递给SubControls 1和2.很多代码行只转发引用。如果我后来添加了DataZ和DataW,以及Controls 3和4以及SubControls 3和4,我将不得不添加更多的参考转发代码。
给SubControls 1和2成员引用主表单似乎更简单。这样,任何子控件都可以请求MainForm.DataX或MainForm.DataY,如果我添加了新数据,我可以直接从子控件中访问它,没有麻烦。但它仍然涉及每次添加新的Control或Subcontrol时设置'MainForm'成员引用。它给了我一种“错误”的直觉。
正如您可能会告诉我对我的任何一种解决方案都不满意。还有更好的方法吗?
由于
答案 0 :(得分:1)
您可以将数据x和数据设为静态成员,以便您可以访问它们 如果您只有一个主窗体运行实例
,这样可以正常工作