1

我正在使用 WPF + MVVM 开发一个项目。程序需要从存储库中加载对象(案例)并允许用户对其进行编辑。主要功能有:

  • 案件的CRUD
  • 了解已加载哪些案例
  • 知道当前选择了哪个案例

目前,0.1 版使用单例类 Session(在命名空间模型中)来存储所有加载案例的列表。

还有一个“案例管理”服务,它在 Session 单例中执行几个操作:

  • 从存储库中加载一个案例并将其存储在 Session 中
  • 删除案例
  • 验证案例是否有效
  • 选择要编辑的案例

我是 WPF 的新手,我想知道是否有适合这种情况的设计模式。恐怕我不会朝着正确的方向前进。

我不知道我是否提供了所有需要的信息,但我愿意尽快回答任何问题。

这里如果有一个原型

加载操作示例

4

2 回答 2

1

你的设计很好,我看不出有什么问题。

不过,我建议一件事,摆脱那个单例会话对象并使用依赖注入,让 DI 容器决定在应用程序组合根目录中为 Session 对象使用什么生命策略。

于 2013-07-26T22:27:03.543 回答
1

我希望您的案例管理服务正在使用某种 ORM 。如果是,那么它将自动处理您的负载案例/返回案例并将其存储到会话中。并且当您想从会话中获取某些内容时,取决于用户输入,您可以使用依赖注入原理(我建议使用 Ninject)并使用单例模式来实现它。

于 2013-07-27T04:42:50.237 回答