1、什么是架构模式?
刚作了软考题,有一道关于提问设计模式是什么的,设计模式是一套解决相似问题的经验的总结。采用设计模式的目的是为了可重用代码。而架构模式也一个通用的、可重用的解决方案。我以为他们的区别是,设计模式跟代码更有直接关系,html
架构模式站在系统全局的角度解决子系统之间的关系、功能需求与非功能的优先级与取舍原则等。数据库
2、分层模式
(参考https://www.cnblogs.com/IcanFixIt/p/7518146.html)设计模式
这种模式也称为多层体系架构模式。它能够用来构造能够分解为子任务组的程序,每一个子任务都处于一个特定的抽象级别。每一个层都为下一个提供更高层次服务。分层模式的关键点在于肯定依赖:即经过分层,能够限制子系统间的依赖关系,架构
使系统以更松散的方式耦合,从而更易于维护。性能
通常信息系统中最多见的是以下所列的4层:表示层,业务逻辑层,持久层,应用层。spa
模式介绍:设计
- 表示层(也称为UI层):主要对用户的请求接受,以及数据的返回,为客户端提供应用程序的访问。
- 应用层(也称为服务层):服务层的做用就是将表现层与业务逻辑层之间完成解耦。那么表现层中就不会出现任何的业务代码,固然这样带来的好处也是显而易见的,就是当咱们修改业务层代码时,咱们不须要修改表现层的代码,
固然若是服务层设计的很差,那么可能会形成反效果。htm
- 业务逻辑层(也称为领域层):主要是针对具体的问题的操做,也能够理解成对数据层的操做,对数据业务逻辑处理,若是说数据层是积木,那逻辑层就是对这些积木的搭建。无疑是系统架构中体现核心价值的部分。它的关注点
主要集中在业务规则的制定、业务流程的实现等与业务需求有关的系统设计,也便是说它是与系统所应对的领域逻辑有关blog
- 数据访问层(也称为持久化层):主要是针对非原始数据(数据库或者文本文件等存放数据的形式)的操做层,而不是指原始数据,也就是说,是对数据库的操做,而不是数据,具体为业务逻辑层或表示层提供数据服务。
使用场景:接口
- 通常的桌面应用程序
- 电子商务Web应用程
模式特色
- 每一个模块必须属于某个层次,为上层提供服务;同时委派任务给下层模块。
- 任何一个模块,都不能逆层次调用;属于下层的模块,不得调用(耦合)上层或上层次的模块。任何一个模块,都不得跨层次调用。
使用场景:
设计模式实现:
门面模式 ——咱们对于每一个模块或者每一个层次都会设计一个“门面”来下降耦合的复杂程度。
策略模式——抽象层次会隐藏底层的实现细节,这就是策略模式最基本的设计,咱们每每会把上层做为功能接口,下层做为可选的策略来实现。
优势
一、开发人员能够只关注整个结构中的其中某一层;
二、能够很容易的用新的实现来替换原有层次的实现;
三、能够下降层与层之间的依赖;
四、有利于标准化;
五、利于各层逻辑的复用。
六、结构更加的明确
七、在后期维护的时候,极大地下降了维护成本和维护时间
缺点
一、下降了系统的性能。这是不言而喻的。若是不采用分层式结构,不少业务能够直接造访数据库,以此获取相应的数据,现在却必须经过中间层来完成。
二、有时会致使级联的修改。这种修改尤为体如今自上而下的方向。若是在表示层中须要增长一个功能,为保证其设计符合分层式结构,可能须要在相应的业务逻辑层和数据访问层中都增长相应的代码。
三、增长了开发成本。