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