【发布时间】:2010-01-23 22:16:31
【问题描述】:
更新:
我有一个桌面应用程序,与以下组件交互:
- Winform 用户界面。
- 服务(包含实际执行工作的业务逻辑的进程内 C# 类)。
- 控制器(协调 UI 引发的事件并调用服务方法的 C# 类)。
如果控制器要求服务做某事,但该服务首先需要控制器提供更多信息(即控制器必须使用 UI 从用户那里获取数据),服务应该如何获取控制器这样做?
我对这个概念很满意
- 用户与 通信
- 与 通信的 UI
- 与之通信的控制器
- 与之通信的服务组件(不要与 Web 服务或进程外服务混淆)
- 通信的数据/存储库...
等等。
但是,对于 Controller 与 Service 的通信,什么方法最适合呢?应该:
- 服务方法是相当细粒度的,如果有什么不对劲的时候抛出异常,这样控制器就知道是继续前进还是告诉用户出了什么问题?或者...
- 服务方法返回控制器可以检查以决定下一步做什么的对象?
我喜欢第一个选项,因为第二个可能意味着类爆炸,每个 Service 方法都需要一个 ServiceResult 样式的类。
我问是因为 Service 组件当然不能告诉 UI 要做什么,只有控制器可以,但是控制器不知道要告诉 UI 什么而没有从 Service 获得一些反馈。
你怎么看?
【问题讨论】:
标签: model-view-controller architecture