什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?


Posted in 面试题 onMarch 14, 2012
什么是典型的软件三层结构?软件设计为什么要分层?软件分层有什么好处?
答案:
(1) Presentation layer(表示层)
(1) 表示逻辑(生成界面代码)
(2) 接收请求
(3) 处理业务层抛出的异常
(4) 负责规则验证(数据格式,数据非空等)
(5) 流程控制
(2) Service layer(服务层/业务层)
(1) 封装业务逻辑处理,并且对外暴露接口
(2) 负责事务,安全等服务
(3) Persistence layer(持久层)
(1) 封装数据访问的逻辑,暴露接口
(2) 提供方便的数据访问的方案(查询语言,API,映射机制等)
Domain layer(域层)
(1) 业务对象以及业务关系的表示
(2) 处理简单的业务逻辑
(3) 域层的对象可以穿越表示层,业务层,持久层
软件分层结构使得代码维护非常方便,设计明确,各层独立,专注自己擅长的领域。

Tags in this post...

面试题 相关文章推荐
比较基础的php面试题及答案-填空题
Apr 26 面试题
中软Java笔试题
Nov 11 面试题
金讯Java笔试题目
Jun 18 面试题
一个SQL面试题
Aug 21 面试题
某公司.Net方向面试题
Apr 24 面试题
Linux面试题LINUX系统类
Nov 25 面试题
Linux上比较文件的命令都有哪些
Sep 28 面试题
简述安装Slackware Linux系统的过程
May 08 面试题
面向对象设计的原则是什么
Feb 13 面试题
你经历的项目中的SCM配置项主要有哪些?什么是配置项?
Nov 04 面试题
中间件的定义
Aug 09 面试题
UNIX操作系统结构由哪几部分组成
Feb 17 面试题
Ibatis如何使用动态表名
Jul 12 #面试题
得到Class的三个过程是什么
Aug 10 #面试题
Ibatis中如何提高SQL Map的性能
May 11 #面试题
什么是类的返射机制
Feb 06 #面试题
Ibatis如何调用存储过程
May 15 #面试题
JAVA的事件委托机制和垃圾回收机制
Sep 07 #面试题
Java的for语句中break, continue和return的区别
Dec 19 #面试题
You might like
php 正确解码javascript中通过escape编码后的字符
2010/01/28 PHP
js+php实现静态页面实时调用用户登陆状态的方法
2015/01/04 PHP
PHP实现长文章分页实例代码(附源码)
2016/02/03 PHP
php常用正则函数实例小结
2016/12/29 PHP
PHP正则表达式匹配替换与分割功能实例浅析
2017/02/04 PHP
PHP使用xpath解析XML的方法详解
2017/05/20 PHP
使用js解决由border属性引起的div宽度问题
2013/11/26 Javascript
js判断字符是否是汉字的两种方法小结
2014/01/03 Javascript
jQuery实现鼠标可拖动调整表格列宽度
2014/05/26 Javascript
ff chrome和ie下全局动态定位的异同及全局高度的取法
2014/06/30 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
JS中的form.submit()不能提交表单的错误原因
2014/10/08 Javascript
pace.js页面加载进度条插件
2015/09/29 Javascript
Bootstrap每天必学之折叠
2016/04/12 Javascript
使用AJAX实现Web页面进度条的实例分享
2016/05/06 Javascript
获取JS中网页各种高宽与位置的方法总结
2016/07/27 Javascript
工作中常用的js、jquery自定义扩展函数代码片段汇总
2016/12/22 Javascript
浅谈在koa2中实现页面渲染的全局数据
2017/10/09 Javascript
Vue CLI3 开启gzip压缩文件的方式
2018/09/30 Javascript
详解如何快速配置webpack多入口脚手架
2018/12/28 Javascript
微信小程序实现人脸识别登陆的示例代码
2019/04/02 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
vue实现购物车小案例
2019/09/27 Javascript
Vue.js获取手机系统型号、版本、浏览器类型的示例代码
2020/05/10 Javascript
[54:18]DOTA2-DPC中国联赛 正赛 PSG.LGD vs LBZS BO3 第一场 1月22日
2021/03/11 DOTA
pycharm 将python文件打包为exe格式的方法
2019/01/16 Python
Django学习笔记之为Model添加Action
2019/04/30 Python
最新Python idle下载、安装与使用教程图文详解
2020/11/28 Python
Python的logging模块基本用法
2020/12/24 Python
DataList 能否分页,请问如何实现?
2015/05/03 面试题
物流经理自我评价
2013/09/23 职场文书
门卫人员岗位职责
2013/12/24 职场文书
售房协议书范本2014
2014/10/23 职场文书
职代会闭幕词
2015/01/28 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
详解Vue的options
2021/05/15 Vue.js