内容简介:实体边界交互器Entity—Boundary—Interactor(EBI)源自Bob大叔在其题为“EBI架构是一种适用于各种应用程序样式的现代应用程序架构。它特别适用于Web应用程序APIS,但EBI的概念是生成与实现无关的体系结构,它不依赖于特定的平台,应用程序,语言或框架。这是设计程序的一种方式,而不是库。名称Entity-Boundary-Interactor源于
实体边界交互器Entity—Boundary—Interactor(EBI)源自Bob大叔在其题为“ Architecture:The Lost Years” 及其 着作的 系列会谈中最初构想的想法。
EBI架构是一种适用于各种应用程序样式的现代应用程序架构。它特别适用于Web应用程序APIS,但EBI的概念是生成与实现无关的体系结构,它不依赖于特定的平台,应用程序,语言或框架。这是设计程序的一种方式,而不是库。
名称Entity-Boundary-Interactor源于 硕士论文 ,深入研究了这种架构。常见或同义的名称是EBC,其中C代表Controller。
通常在查看Web应用程序的代码时,您会看到大量的文件夹,库安装和 工具 配置。代码随意地构建到非描述性文件夹中,并且应用程序的依赖关系布局是一个丛林。
结果,程序的目的和架构变得不透明。
应用程序的体系结构由其用例驱动。-Ivar Jacobsen
我们的想法是设计程序,以便他们的架构能够立即呈现其用例。这是一种设计程序的方法,以便它的内部依赖图被清晰地组织起来,并且它的元素以尽可能松散的耦合连接在一起。
最终,目标是在应用程序层之间分离关注点,这种架构和许多类似于它不依赖于表示模型或平台。所有箭头或依赖关系都指向抽象链中的内部,每个连续的层都比之前的那个更抽象。
与MVC有什么不同?
EBI和MVC之间的区别在于EBI体系结构是应用程序的业务逻辑被设计为与其交付机制无关的平台。
换句话说,这意味着业务逻辑部分,交互者和实体不知道他们从哪个媒体访问。它可以来自Web服务器,单元测试或GUI应用程序。
将此与MVC形成对比,MVC 总是依赖于传递机制。无论你怎么努力,你都无法将Rails控制器从网络世界中剔除。
架构
该架构最好描述为功能性数据驱动 架构,其中请求被处理成结果。该架构由三个不同的组件组成。
- 实体Entity是架构的核心。实体表示具有独立于应用程序的业务规则的业务对象。他们可能是Book在图书馆或Employee员工登记处。所有与应用程序无关的业务规则都应位于实体中。
- 边界Boundary是与外界的联系。边界可以实现用于处理图形用户界面或web API的数据的功能。边界本质上是函数性的:它们接受数据请求并产生响应。这些抽象由交互者具体实现。
- 交互者Interactor操纵实体。他们的工作是通过边界接受请求并操纵应用程序状态。Interactors是应用程序的业务逻辑层:交互者根据请求行事并决定如何处理它们。交互者知道称为DTO的数据传输对象的请求和响应模型。交互者是边界的具体实现。
优良作法是将EBI架构本身分为五个不同的层。这些层对应于您选择的语言的命名空间或包。
- 在主机层实现了API的物理表现,例如Web服务器
- 该API层是接口程序本身,它接受输入,并将其转换成的DTO,将它们传递给
- 包含边界,响应 和请求模型的服务层
- 该核心包含具体的服务实现层的层
- 实现边界并形成应用程序核心业务逻辑的交互者
- 表示程序数据模型的实体
因此,在构造程序时,使用依赖注入从上到下构建API。该主机层是一个做具体作用因子的DI。
就是这样: 交互者不知道其请求来自哪个协议或被发送到哪个协议,并且API不知道什么类型的交互器实现服务边界。
详细点击标题见原文!
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
逆向工程权威指南
Dennis Yurichev(丹尼斯) / 安天安全研究与应急处理中心 / 人民邮电出版社 / 2017-3-1 / 168
逆向工程是一种分析目标系统的过程,旨在于识别系统的各组件以及组件间关系,以便于通过其它形式、或在较高的抽象层次上,重建系统的表征。 本书专注于软件的逆向工程,是写给初学者的一本经典指南。全书共分为12个部分,共102章,涉及X86/X64、ARM/ARM-64、MIPS、Java/JVM等重要话题,详细解析了Oracle RDBMS、Itanium、软件狗、LD_PRELOAD、栈溢出、EL......一起来看看 《逆向工程权威指南》 这本书的介绍吧!