寻找更好的winforms设计

时间:2009-08-29 15:20:13

标签: winforms

这与this question有关。建议的答案涉及向“Form1”添加属性,该“Form1”类型为“Form2”,它回答了所提出的问题。但如果我们想要一个耦合度较低的解决方案呢你有什么建议吗?

1 个答案:

答案 0 :(得分:1)

你得到的灵感是如此耦合,因为你没有提供关于你当前设计是什么以及命名形式1和form2的分配信息。

要获得较少耦合的设计,您可以执行以下操作之一:

简单的解决方案 将事件添加到form2,当X发生时触发(X是确定通知图标需要更改的内容)。然后,您可以在引用notificationicon和form2的位置挂接事件处理程序。这样form2不必知道form1。这种耦合来自形式1 - > form2(无论如何,因为form1实例化form2)而不是form1< --->窗口2

这个高级解决方案涵盖的只是此通知问题,但整个应用程序的体系结构 另一种解决方案是使用干净的UI设计模式,如模型视图控制器,模型视图存在或模型视图视图模型。通知概率不是表单本身的问题,而是某个商业实体的问题。所以这应该是偶然暴露它而不是它们的形式(它们只负责实际呈现某些东西)。如果您从表单和某种模型中抽象出通知的概念,您甚至可以通过使用诸如structuremapninject之类的IoC容器之类的控件反转(IoC)来添加更多的解耦。一个INotificationManager接口,在运行时构造模型类时可以为其注入具体类型。