【问题标题】:Suitable design pattern for retrieving arbitrary data from main window适合从主窗口检索任意数据的设计模式
【发布时间】:2012-08-20 11:46:14
【问题描述】:

在我的 C# 软件中,我有许多绘图工具。每个工具都有自己的类和一个通用接口。例如。 “画矩形”。

现在,许多这些工具需要从我的主窗口读取数据才能执行它们的任务。但是,我不希望这些工具与我的MainForm 课程相结合。显然,需要更好的设计。哪种设计模式适合这项任务?

问: X 类如何在不耦合两个类的情况下从 Y 类读取任意信息?

【问题讨论】:

  • A:使用接口
  • 正如@AndreCalil 所说,不需要设计模式,只需使用检索数据的方法创建一个接口并让 MainForm 实现此接口。
  • 谢谢。这是最直接的解决方案。我在考虑访问者模式,但也许这有点矫枉过正?

标签: c# design-patterns


【解决方案1】:

您想将Y 抽象为一个专门设计的接口,以允许检索X 需要的那种信息。

同时,您不希望将您可能想到的特定实现的细节(例如您的主窗口)泄漏到界面中。

【讨论】:

  • 确实如此。 OP 不妨看看这个设计模式:dofactory.com/Patterns/PatternBridge.aspx
  • 这正是我害怕的。如果我制作一个界面,将很难让它与典型的“MainForm”内容保持一致。
  • 这可能很痛苦,但这是保持类解耦的唯一方法。您可能希望扩展接口层次结构,以便将上下文分解为几个较小的接口。同样,与其从Y 返回特定的类,最好还是只返回接口。按照这种方式,您最终将能够将接口与各个级别的实现分开。
  • 几个较小的接口。我会去的。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-04-16
  • 1970-01-01
  • 2020-02-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多