【发布时间】:2010-07-30 19:04:21
【问题描述】:
我正在开发一个使用 wxWidgets 的带有 GUI 的应用程序。我得到了一个用作“模型”的对象:它的数据必须用于绘制 ui 并且 ui 应该修改它。我们称这个类为Model。
应用程序的结构如下所示:
一个wxApp-派生对象,它拥有:
- 一个
wxFrame派生的对象,它拥有一个wxGLCanvas-派生对象。 - 另一个
wxFrame-派生对象。
对于Model 类,
-
我可以使用 singleton 会让事情变得非常简单:我 可以使用
model.getThatData()或model.setThatData()任何地方。但是,当人们 说它是一个全局变量 一件化装。
-
我也可以使用依赖 注入(或者是什么 否则):我实例化
Model在wxApp对象,然后我传递一个 引用实例modelinwxFrame派生类的构造函数, 与wxGLCanvas相同 构造函数,我存储 引用作为属性 需要的课程。但是,这似乎也不是 很好的解决方案。假设 第一个
wxFrame对象不需要 使用model。我们还是会 必须传递对model的引用 在其构造函数中能够 将其传递给wxGLCanvas-derived 目的。所以这种设计可能会导致 许多(?)不必要的路过。 - ?
你怎么看?这个问题我问了好久……
【问题讨论】:
标签: c++ dependency-injection singleton wxwidgets