分层架构设计

分层架构是将软件模块按水平切分的方式分红多个层,最基本的分层方式是表现层、业务逻辑领域层和数据持久层(MVC)。也有分为四层表现层、应用层、领域层和基础层,业务逻辑在领域层,基础层比持久层范围更大,不只能够提供持久层服务,还提供缓存服务。四层中应用层是对三层架构中领域层的进一步拆分,但业务逻辑永远在领域层。缓存

分层架构的好处是高内聚低耦合,单一职责、提升可复用性和下降维护成本,缺点是开发成本高、性能低和可扩展性低。架构

分层架构的好处

分层架构的目的是经过关注点分离来下降系统的复杂度,同时知足单一职责、高内聚、低耦合、提升可复用性和下降维护成本。性能

  • 单一职责:每一层只负责一个职责,职责边界清晰,如持久层只负责数据查询和存储,领域层只负责处理业务逻辑。
  • 高内聚:分层是把相同的职责放在同一个层中,全部业务逻辑内聚在领域层。这样作有什么好处呢?试想一下假如业务逻辑分散在每一层,修改功能须要去各层修改,测试业务逻辑须要测试全部层的代码,这样增长了整个软件的复杂度和测试难度。
  • 低耦合:依赖关系很是简单,上层只能依赖于下层,没有循环依赖。
  • 可复用:某项能力能够复用给多个业务流程。好比持久层提供按照还款状态查询信用卡的服务,既能够给申请信用卡作判断使用,也能够给展现未还款信用卡使用。
  • 易维护:面对变动容易修改。把全部对外接口都放在对外接口层,一旦外部依赖的接口被修改,只须要改这个层的代码便可。

以上这些既是分层的好处也是分层的原则,你们在分层时须要遵循以上原则,不恰当的分层会违背了分层架构的初衷。测试

分层架构的缺点

分层架构也有几个缺点url

  • 开发成本高:由于多层分别承担各自的职责,增长功能须要在多个层增长代码,这样不免会增长开发成本。可是合理的能力抽象能够提升了复用性,又能下降开发成本。
  • 性能略低:业务流须要通过多层代码的处理,性能会有所消耗。
  • 可扩展性低:由于上下层之间存在耦合度,全部有些功能变化可能涉及到多层的修改。

http://ifeve.com/am-hierarchy/?hmsr=toutiao.iospa

相关文章
相关标签/搜索