IODA架构简介

在 Ralf Westphal 看来,像 分层架构 、 六角架构 和 整洁架构 等所有这些常见的架构模式都做了同样的两件事:定义职责域和功能依赖排序。在他看来,这些模式给出的应用程序架构思路都非常简略,从本质上讲,它们将软件描述为一种功能或行为依赖的深层次结构。

在寻找另外一种架构描述方法的过程中,Westphal定义了一种名为 IODA 的架构风格。该架构模式基于三种与“行为职责(behavioural responsibility)”毫不相干的“形式职责(formal responsibility)”:

IODA架构简介

“操作(Operation)”是操作某些数据的一段逻辑或一种行为,但它不知道其它任何操作,也不能调用它们。

“数据(Data)”是结构化数据,其中可能包含用于确保一致性的数据操作服务,但不包含任何其它形式的逻辑。

“集成(Integration)”调用操作或其它集成,将它们整合到一起创建行为,但它们不包含逻辑。

API和框架是第四部分,操作通过它们与环境进行交互。

在这种模型中,操作仅仅依赖于数据,而集成依赖于操作和其它集成。通过这种方式,Westphal声称已经移除了所有的功能依赖,只剩下他称之为形式依赖或空依赖的东西。他还指出,由于操作不能调用其它操作,将逻辑抽取到新操作方法中意味着需要创建集成来整合它们,这样可以迫使应用程序中的方法都是只有10到20行代码的小方法。

关于IODA架构,Westphal提到了一个重要的方面,就是它可以出现在若干层面上。在某个抽象层次上的操作,在放大后,本身也可以是一个完整的IODA结构。

Westphal已经创建了一个使用IODA架构 设计和实现一个小型应用程序的示例 ,其中包括对基本设计思路的描述。代码下载请点击 这里 。

查看英文原文: Introducing IODA Architecture

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » IODA架构简介

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址