写出高质量软件是困难和复杂的:不仅仅是为了满足需求,还应该是健壮的,可维护的,可测试的,并且足够灵活以适应成长和变化。这就是洋葱架构出现的原因,它代表一组优秀的开发实践,用来开发任何的软件应用都是一个不错的方式。
洋葱架构,也成为整洁架构(The Clean Architecture),用来构建具有如下特点的系统:
1. 独立的Frameworks
2. 可测试
3. 独立的UI
4. 独立的数据库
5. 独立的任意外部服务(代理)
看到这张图,你应该能理解为什么称其为洋葱架构了:D, 没错,这就是它的原理图。注意,并不是只能使用4个圆环,重点在于这里的依赖原则:代码依赖是从外向内的,内环中的代码不应该知道外环中的任何东西。
这里有一些相关的词汇可以帮助更好的理解和熟悉这种方式: