在分解复杂的软件系统时,设计者用的最多的技术之一就是分层。 java
优势:一、复杂问题分解简单化,每一层负责本身的实现,并向外提供服务。 mysql
二、职责分离,复杂的系统都有不少人员进行开发,这些功能开发的管理和集成是个很严重的问题,分层设计实现以后,每层只需定义好本身的对外接口,其余依赖层服务的就能够进行开发。
sql
三、每一层对其余层都是独立的,上层无需知道下层的细节,只需调用服务便可,减小学习成本。
数据库
四、有利于标准化
tomcat
缺点:一、分层以后对于领域业务的修改有可能须要修改不少层。
服务器
二、过多的层次影响性能
性能
依赖的原则:上层依赖下层,下层不能依赖上层。 学习
分层实现的难度在于 肯定每一层的职责,特别是领域层。 spa
表现层运行在IE(六、七、八、九、10)? 设计
领域层运行在服务器上(javaEE服务器、tomcat..)?
数据源层(选择什么样的数据库,mysql、Oracle、hbase)?
在实际开发中,层次之间界定并非很是明显,在表现层写业务逻辑控制,在领域层写数据访问,这些对于小型的,快速开发使用的系统并不会形成很大问题,一般状况下,这些系统后续变动修改较少,要修改就从新再作一套,这就是大部分小型软件开发做坊的开发模式。
规范化是企业运行上一个台阶的表现,为的是防止人员流动风险,减小重复劳动,合理管理。