我们在架构设计中,经常会听到分层架构,那么到底什么是分层架构呢?
首先我们得理解层的概念,层就是软件的逻辑单元每一层解决一个特定的问。比如HTTP的7层架构。还有我们经常听说的spring mvc架构。这其中都是分层的概念。还有我们在开发过程中接触的controller service do 我说的这些都是分层架构中的某一层。或许说到这里,你对层的概念会有一丝深刻的理解。计算机领域有一个不成文的规定。就是解决不了的问题就会加一层。就像jvm虚拟机加了一层虚拟层,就解决了硬件层面的不同。所以分层架构在我们的架构设计中有着很重要的地位。良好的运用分层架构可以使得架构很清晰。而且代码也可以良好的扩展。
我们的系统架构一般都是按照职责划分和组织。划分完职责之后,可以按照分层架构去设计和实现。那么分层架构在架构设计中有哪些优点和缺点呢?
优点如下,由于每一层只解决一个问题,所以整个架构具有良好的高内聚,低耦合,并且在每一层有良好的扩展性。它的可维护性和可测试性也很高,因为你可以只针对每一层进行维护和测试,不用担心其他层。层与层之间通过接口进行交互。因为依赖接口相当于依赖抽象而不依赖实现,所以整体的改动量是很小的。
我们说完了优点,我们再来说一下缺点。分层架构一个明显的缺点就是随着层数的增加,会增加通讯时长。使得整体架构的性能不是特别高。
我们说了什么是分层架构,并且阐述了架构的优缺点那么我们如何实现一个分层架构呢?
一般我们在做系统设计的时候,都是有
从web controller entity ,从外到内,越往里走越抽象。系统的内部往往是一些规则的体现。所以每一层只需要关注自己的事情就行。就像web层只关注用户的交互,controller层只关注请求的转发。底层是一些实现。
好了今天的分享就到这里。明天我会继续分享架构方面的知识。明天我将给大家分享的是事件驱动架构。大家尽情期待吧!