在 Ralf Westphal 看来,像分层架构、六角架构和整洁架构等所有这些常见的架构模式都做了同样的两件事:定义职责域和功能依赖排序。在他看来,这些模式给出的应用程序架构思路都非常简略,从本质上讲,它们将软件描述为一种功能或行为依赖的深层次结构。
在寻找另外一种架构描述方法的过程中,Westphal 定义了一种名为 IODA 的架构风格。该架构模式基于三种与“行为职责(behavioural responsibility)”毫不相干的“形式职责(formal responsibility)”:
“操作(Operation)”是操作某些数据的一段逻辑或一种行为,但它不知道其它任何操作,也不能调用它们。
“数据(Data)”是结构化数据,其中可能包含用于确保一致性的数据操作服务,但不包含任何其它形式的逻辑。
“集成(Integration)”调用操作或其它集成,将它们整合到一起创建行为,但它们不包含逻辑。
API和框架是第四部分,操作通过它们与环境进行交互。
在这种模型中,操作仅仅依赖于数据,而集成依赖于操作和其它集成。通过这种方式,Westphal 声称已经移除了所有的功能依赖,只剩下他称之为形式依赖或空依赖的东西。他还指出,由于操作不能调用其它操作,将逻辑抽取到新操作方法中意味着需要创建集成来整合它们,这样可以迫使应用程序中的方法都是只有 10 到 20 行代码的小方法。
关于 IODA 架构,Westphal 提到了一个重要的方面,就是它可以出现在若干层面上。在某个抽象层次上的操作,在放大后,本身也可以是一个完整的 IODA 结构。
Westphal 已经创建了一个使用 IODA 架构设计和实现一个小型应用程序的示例,其中包括对基本设计思路的描述。代码下载请点击这里。
查看英文原文: Introducing IODA Architecture
评论