2014-02-24 20 views
1

我目前正在开发使用工作单元,通用存储库和服务模式的asp mvc。我对设计在控制器中的工作方式有点困惑。 我应该将资源库公开给控制器吗?或者管理员是否应该知道服务? 控制器需要存储库来检索组合框列表的实体。 暴露存储库的问题是它有保存和删除方法,只能由服务调用。 有人可以帮我解决这个问题吗?我应该在使用服务时向版本库公开仓库吗?

+1

[可以从表示层访问存储库吗?](http://stackoverflow.com/questions/1394967/can-i-access-a-repository-from-presentation-layer) – Soren

+2

如果你有一个服务层那么为什么你甚至想要将资源库公开给控制器。您应该添加另一种方法来检索combolist的数据。 –

回答

3

存储库模式用于抽象数据源。

没有必要抽象出抽象。所以我会使用存储库。

但是,只要您开始在表示层中获取业务逻辑,您应该将其提取并放入服务中。

+0

@Reynaldi:你对答案满意吗? – jgauffin

+0

@Reynaldi:你能接受答案,还是需要更多信息? – jgauffin

0

它取决于持久层(Repository)前的任何业务逻辑的需求。你有任何的时候,它会在控制器中结束。这对于一个非常简单的系统来说可能是可以接受的,但是当您将系统扩展(玩家状态之外的REST API,管理/支持应用,离线/批处理)时,您需要将该逻辑推送到共享层,服务层。现在就放入抽象概念,稍后再保存一些重构。这也可以使控制器保持业务目标,指导流量和呼叫服务获取/放置数据。

+0

表示层应仅引用服务层而不引用存储库层。就像你的情况一样,有时候我们需要通过服务层创建一个“传递”,只是为了将它暴露给表示层。 – sunil

相关问题