层次式架构为软件系统提供了一种在结构,行为和属性方面的高级抽象,他的核心思想是讲系统组成一种层次结构每一层为上层服务并作为下层的客户.内部的层接口只对相邻层可见,连接件通过决定层间如何交互的协议来定义.由于每一层最多只影响两层,同时只给相邻层提供相同的接口,允许每层用不同的方法实现,为软件重用提供支持.
层次式体系架构也被叫做N层体系架构模式.这也是Java EE经常采用的标准模式.大部分应用会被分成表现层,中间层(业务层)数据访问层(持久层)和数据层.小的应用有时候会将业务层和持久层合在一起.
分层架构的特性是关注分离.
表现层设计模式由MVC模式,MVP模式和MVVM模式.
MVC模式强制的把一个应用的输入处理输出流程按照视图-控制-模型的方式进行分离,形成了视图,控制器,模型三个核心模块.首先控制器controller接收以用户请求,并决定应该调用哪个模型,然后模型根据请求进行业务逻辑处理,返回数据给控制器,最后控制器调用视图来格式化模型返回的数据,通过视图呈现.
MVP(model-view-presenter)模型提供数据,视图提供显示,presenter提供逻辑的处理.与MVC的区别是,MVP不允许view和model直接交流,要通过presenter控制.降低了view和model的耦合,也降低了presenter对view的依赖.
PS:MVP模式更多应用在安卓开发模式中.
MVVM模式是为了解决MVP中UI种类变多,接口也会不断增加的问题而提出的,MVVM的全称是Model-View-ViewModel,也都实现了视图和模型的分离,不同的是,视图和模型的交互由viewModel来实现,viewModel是MVVM的核心,View和Model的双向绑定内容包含数据状态处理,数据绑定,以及数据交换,绑定的数据内容一但变更就会反应到view层.像一个观察者监听数据的变化,对视图进行自动更新.
中间层也叫业务层,是实现系统功能的核心组件,采用容器的形式便于系统的开发,代码重用和管理.
业务逻辑层是按照Domain-model-service-controller思想来实现的,domain-modal是领域层业务对象,service是业务实现的组成部分,通过统一的接口联系,服务之间实现松耦合,controller服务控制器,实现不同服务之间的切换,提高服务的灵活性和重用性.
数据访问层由五种数据访问模式