代码之家  ›  专栏  ›  技术社区  ›  Rob

寻找更好的winforms设计

  •  0
  • Rob  · 技术社区  · 15 年前

    这与 this question . 建议的答案包括在“form1”中添加一个“form2”类型的属性,该属性回答所问的问题。但如果我们想要一个不那么耦合的解决方案呢?你有什么建议?

    1 回复  |  直到 15 年前
        1
  •  1
  •   olle    15 年前

    你得到的雨篷是如此的耦合,因为你没有提供关于你当前的设计是什么的信息分配和命名的东西form1和form2。

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

    简单的解决办法 将事件添加到当x发生时激发的form2(x决定通知图标需要更改)。然后,可以在引用NotificationIcon和Form2的位置连接事件处理程序。这样一来,form2就不必知道form1了。这样耦合就从form1->form2(无论如何,这是因为form1正在实例化form2)而不是form1-<-->form2

    这是一个高级的解决方案,它不仅涵盖了这个通知问题,还涵盖了整个应用程序的体系结构 另一个解决方案是使用一个干净的ui设计模式,如模型-视图-控制器、模型-视图-显示或模型-视图-视图-视图-模型。通知实际上不是形式本身的问题,而是某个商业实体的问题。所以这应该是真实的,而不是它们本身的形式(它们只负责实际呈现一些东西)。如果您将通知的概念从表单中抽象出来,并抽象到某种模型中,您甚至可以通过使用类似于 structuremap ninject 以及inotificationmanager接口,在运行时构造模型类时可以为其注入具体类型。