分层架构的优缺点 - 范文中心

分层架构的优缺点

06/16

分层架构的优点如下:

1. 分离开发人员的关注。由于某一层仅仅调用其相邻下一层所提供的服务,所以,只要本层的API 和相邻下一层的API 定义完整,开发人员在开发某一层时就可以像关注集中于这一层所用的思想、模式、技术,这样,就等同于将分工带来的生产力提高优势引入软件开发。又如买蛋糕的例子,作为超市,只要知道下层API(如何从蛋糕厂获取蛋糕) 和本层需要实现的API(把蛋糕销售给客户) ,就可以制定自己的业务模式很策略计划了,而不必关心如何种小麦、如何磨面粉、如何做奶油、如何做蛋糕等。这样,超市只需进行商业运作,而不必进行产业运作,如此专一,必然提高业务水平。

2. 无损替换。想象一下,如果某家奶牛场倒闭了,奶油加工厂也要跟着倒闭吗? 当然不会,它可以迅速更换一家奶牛场,因为各个奶牛场都可以实现“提供牛奶”这项服务。再譬如,如果某天国家出台政策,要求所有奶油厂必须从审查合格的奶牛场引进原料,恰好某奶油厂的合作牛奶供应商没能通过审查,那么,只要换一家通过审查的合作就行了。而且奶油厂内部的各个环节一动不用动,因为不同的奶牛场都可以提供“供应牛奶”这个服务。而如果奶油厂自己养牛生产牛奶,一旦遇到这个政策,还得自己去有关部门进行审查,调整相应业务流程,牵一发而动全身。程序中同样的道理,最常听说的可能就是迁移数据库了。

3. 降低了系统间的依赖。还是蛋糕那个例子,如果某天蛋糕厂内部换机器了,或业务流程调整了,请问顾客需要关心吗? 显然不用,因为顾客只调用超市提供的服务。而超市为顾客隐藏了下面所有产业细节。如果每一个顾客买一样商品,都要了解这个商品从原料生产到成型再到销售的一系列细节,岂不累死了。换做程序中,就如表示层只管调用业务层的服务,至于业务层下还有几层? 各种数据是怎么来的? 怎么存的? 是真实的还是捏造的? 都不需要了解,这大大降低了系统各职责之间的依赖。

4. 复用。例如,你可以去这个超市买东西,我也可以去这个超市买东西。蛋糕厂可以从面粉厂提取面粉,馒头厂也可以。这样,同样的层就可以为不同的上层提供服务,达到了复用的目的。具体到程序中,例如气象局制作发布了一个“Service Layer”,用于提供天气预告信息。这样新浪、搜狐这些网站可以利用这个服务层提供的服务,制作天气预告页面,QQ 也可以利用这个服务在它的聊天工具上添加天气预告,你自己做一个软件需要用到天气预告功能,也可以调用气象台的“Service Layer”。

说罢优点,再来谈谈分层架构的弊端:

1. 级联修改问题。这个问题在现实中不好比喻,但在程序中相信很多朋友都明白。例如,一个人事管理系统,本来查看人员信息只能分页查看,而现在,需要增加一个功能:在分页的同时还能分部门。例如,可以查看“销售部的前50个人”,这样,为了这个功能所有层都需要修改。

2. 性能问题。本来直来直去的操作,现在要层层传递,势必造成性能的下降。就如在购买蛋糕的例子中。顾客在享受分工带来的便利时,也要承受由于不同层的部门分布各地而造成的蛋糕价格上升,这是因为分层增加了成本,如运输、不同层间部门的协调管理成本等。 纵观以上分析,分层架构有利有弊。这是一定得,世上任何事物都有利弊,所以,把“分层架构捧上天”和“一棍子打死”这两种做法都是不明智也是不科学的。对待分层架构,我们的态度应当是明晰其本质和利弊,然后根绝具体情况做出理性的分析和抉择。

从上面的分析可以看出,分层架构可以降低层内变化的成本,而对于API 的变化非常敏感。如在级联修改中提到的“在分页的同时还能分部门”的新需求,就是对API 进行的变动。API 的变动对于分层架构是致命的,修改起来难度非常大。所以,一个简单的判断法则就是:如果您的系统层内频繁变动(甚至整层替换) 可能性很大,而API 变动可能性很小,就使用分

层; 而如果API 可能会频繁变动,那就要谨慎使用分层架构了。


相关内容

  • 单片机硬件工程师面试试题
    单片机硬件工程师面试试题 一.现代通讯网络中广泛使用的交换方式有那两种? 分组和电路 二.通常所说的TCP/IP协议对应于OSI模型的哪层?你认为网络模型分层有什么好处?如果让你来制订网络体系架构,你认为应该遵循什么原则? 第四(传输)和第 ...
  • 电力信息化与信息安全课后答案
    第一章 1.什么是一次能源?什么是二次能源? 一次能源是指自然界中以天然形式存在并没有经过加工或转换的能量资源 二次能源是指由一次能源经过加工.转换以后得到的能源 2.简述电力系统为什么要组成电网运行? 课本P2,电力系统的形成 3.什么是 ...
  • 虚拟社区新浪微博电商案例分析
    虚拟社区电商案例分析 --新浪微博 组长:1137125孙雪宁 组员:1137118何增冉 1137121张旖婷 1137131王昱丁 1137202施聪华 1137230朱蝶 1137233李易蝶 时间:2016年3月23日 目录 一. ...
  • 物联网对智慧城市长效发展的意义
    [摘 要]本文章针对城市化发展现状,分析城市化发展进程中的问题,通过物联网技术在智慧城市中的应用,针对推动城市化发展,解决可持续性,节能和精细动态管理等问题,提出了物联网的规划设计思路以及应用案例. [关键词]物联网:城市化:发展 中图分类 ...
  • 房产测绘管理及房产测绘信息系统的发展论述
    摘要:随着城市进程的加快与我国住房制度的不断改革,房产管理的业务量也在不断的增加,其权属的变更也越来越频繁, 其房产权的种类也越来越多元化,各行各业对房产管理的要求也越来越高.本文笔者结合自身多年的房产测绘工作经验,将房产测绘管理作为其研究 ...
  • ts16949分层审核
    Layered Process Audit 分层审核 讲师:冯永昌 什么是分层审核 (LPA)? 分层审核是一套持续的制程检查系统,用来验证工艺,参 数设置,操作者技能,防错装置及其它资源是否正确及适 宜,以确保生产出无缺陷的产品. 分层审 ...
  • 标准化制度体系建设方案
    中国石化标准化制度体系建设方案 根据"关于塑造中国石化特色管理模式指导意见"和"中国石化管理标准化信息化总体方案"的要求和部署,研究提出中国石化标准化制度体系建设方案. 一.标准化制度体系建设原则与指 ...
  • 小红花的作用
    题 目: 小红花的作用 学 院: 数理与信息工程学院 专 业: 物理 学生姓名: 胡宇婷 学号: 12180304 完成时间: 2014 年 4 月 3 日 小红花的作用 --看上去很美后感 这是我第二次看这部影片,与其说是欣赏一段故事,不 ...
  • 缸内直喷介绍
    在对能源和环保要求日趋严格的今天, 即使是多点燃油喷射这样的技术也不能满足人们的要求了,于是更为精确的燃油喷射技术诞生,那就是缸内直喷技术. 缸内直喷就是将燃油喷嘴安装于气缸内,直接将燃油喷入气缸内与进气混合.喷射压力也进一步提高,使燃油雾 ...
  • 高层建筑施工模拟题
    <高层建筑施工>模拟题(补) 一.填空题 1三种方法. 2.轻型井点的设备由 井点管 .连接管 .集水总管 和抽水设备 组成. 3 4.当边坡坡角β小于土的内摩擦角φ时(k>1) 5.对于无粘性土中支护结构的内力计算采用& ...