实体控制边界 (ECB) 与模型视图控制器 (MVC)

Entity Control Boundary (ECB) vs Model View Controller (MVC)

我不确定我的概念是否正确。

有人告诉我

边界 = 视图

实体=模型

控制=控制器

但是基于我对 MVC 的了解。 (胖模型,瘦控制器)

边界 = 控制器,控制 = 模型(业务逻辑)和实体 = 模型(The orm 类 或类似的实体 类,它只做 crud )。

可能我说的不对,请指导!

其实你的第一个定义是正确的。单词的含义有时令人困惑。以下 link 确认并总结了这两种模式(将 ECB 命名为 MVC 的变体):The Entity-Control-Boundary Pattern

两者非常相似。主要区别在于 MVC 通常用于用户界面设计,而 ECB 最常用于业务逻辑。 Here's a portion of a presentation Adam Bien 以推广欧洲央行而闻名,他帮助我理解了两者之间的区别。

你的解释是正确的。但它们并不相似。 MVC 用于用户交互。业务规则不直接绑定到用户,甚至不绑定到像互联网本身这样的 I/O 设备。 ECB 模式用于将业务实体与边界(mvc 框架、ORM)分开。实体是业务对象,它们对数据库、orm 一无所知。控件不是 MVC 中的控制器,它可以是代表用例的命令。只有控制可以访问业务实体。业务实体是它们自己的世界,与 MVC 层完全隔离。它可以是一个业务框架,具有自己的模式、原则、类型和分离层,不希望与 I/O 相关的任何内容进行交互。

我们可以像这样将 MVC 与 ECB 结合起来:

User <-> Controller [Boundary] <-> Control (use case) [Control] <-> Business entities [Entity] <-> Other business entities [Entity]