【发布时间】:2017-05-18 21:11:20
【问题描述】:
在 ASP.NET MVC 世界中,控制器是否可以充当应用程序层,调用我的域对象和服务来完成工作(假设控制器只是严格调用域并且什么都不做)。在处理的特定情况下,我需要建模的应用程序流逻辑非常少,因此我正在考虑取消应用程序层并直接从控制器内调用域。
这是一个公平的方法吗?
【问题讨论】:
-
只要您了解设计的含义,就没有关于您可以做什么和不能做什么的明确规定。它总是归结为成本收益权衡。在这种情况下,简单性是以牺牲灵活性为代价的。例如。如果你有多个用户界面怎么办?如果外部系统必须与您的应用程序交互怎么办?我通常更喜欢立即添加额外的间接层,因为它不是那么昂贵,并且可以为您节省大量重构。
-
人们过于关注这些设计模式。它们是模式,因为它们解决的问题足够普遍,以至于许多人最终会一遍又一遍地做相同类型的事情。但是,并非每个应用程序都需要每种模式。根据您的应用程序的需要设计您的应用程序,而不必担心您是否检查了设计模式清单上的所有框。
-
@plalx:现在添加一个额外的间接层现在对我来说似乎有点矫枉过正,不过我完全理解你的情况。我愿意保持简单,因为知道引入另一层的成本是有代价的。
-
@Chris 我不得不问这个问题只是为了确保我没有严重忽视任何事情。
-
我并没有反对它。只是意味着只有您可以说出对您的应用程序来说什么是好主意或不是一个好主意。以最有意义的方式设计它,其他一切都会自行解决。遵循这些模式旨在降低维护成本。但是,实施它们有其自身的开销。为可能永远不会发生的潜在未来而建设,或者只是做现在需要做的事情,这始终是一种平衡行为。最终它总是一个判断电话。
标签: asp.net-mvc domain-driven-design