洋葱架构是否包含 SOLID 原则?

Does Onion architecture include SOLID principles?

我正在阅读和学习如何通过遵循 SOLID 和 CRAP 原则更好地设计应用程序项目。我很乐意理解 CRAP 原则。然而,在研究过程中,我遇到了洋葱架构的概念,我很难理解这两个设计概念和两者之间的 differences/similarities,如果有的话?

洋葱架构的项目会包含 SOLID 原则吗?一种方法与另一种方法相关吗?

Onion 架构与 SOLID 原则相得益彰;这是因为 SOLID 原则侧重于设计而不是架构。

换句话说,Onion 架构专注于将相关的(按功能)类 分组到层中,其中上层的 类 依赖于下层的 类层。最低层(或基础层)是域 类(那些 类 不经常更改),外层是 UI、基础设施等(即 类 变化最频繁的)

SOLID 专注于 类 及其设计方式。单一职责原则表明 类 应该如何根据他们实施的方法构建应该围绕一个职责。开放/封闭原则展示了 类 应该如何设计,即改变需求导致扩展或添加到现有代码,而不是修改现有代码。 SOLID中的其他原理类似。