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


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...

面试题 相关文章推荐
Java的接口和C++的虚类的相同和不同处
Mar 27 面试题
输入N,打印N*N矩阵
Feb 20 面试题
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
Sep 05 面试题
SQL Server的固定数据库角色都有哪些?对应的服务器权限有哪些?
May 18 面试题
数据库专业英语
Nov 30 面试题
.NET面试10题
Feb 24 面试题
explicit和implicit的含义
Nov 15 面试题
Linux操作面试题
Feb 11 面试题
linux面试题参考答案(7)
Jul 24 面试题
linux面试题参考答案(11)
May 01 面试题
软件测试有哪些?什么是配置项?
Feb 12 面试题
Delphi CS笔试题
Jan 04 面试题
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
2021年最新CPU天梯图
2021/03/04 数码科技
PHP4(windows版本)中的COM函数
2006/10/09 PHP
PHP中使用数组实现堆栈数据结构的代码
2012/02/05 PHP
php layui实现前端多图上传实例
2019/07/30 PHP
laravel 解决ajax异步提交数据,并还回填充表格的问题
2019/10/15 PHP
laravel admin实现分类树/模型树的示例代码
2020/06/10 PHP
Extjs4 消息框去掉关闭按钮(类似Ext.Msg.alert)
2013/04/02 Javascript
浅谈nodeName,nodeValue,nodeType,typeof 的区别
2015/01/13 Javascript
js改变embed标签src值的方法
2015/04/10 Javascript
JavaScript程序设计之JS调试
2015/12/09 Javascript
js日期插件dateHelp获取本月、三个月、今年的日期
2016/03/07 Javascript
JS Array创建及concat()split()slice()的使用方法
2016/06/03 Javascript
Node.js读写文件之批量替换图片的实现方法
2016/09/07 Javascript
浅谈JS中String()与 .toString()的区别
2016/10/20 Javascript
JavaScript数组迭代方法
2017/03/03 Javascript
详解Angular2中Input和Output用法及示例
2017/05/21 Javascript
基于JavaScript 性能优化技巧心得(分享)
2017/12/11 Javascript
React数据传递之组件内部通信的方法
2017/12/31 Javascript
关于axios如何全局注册浅析
2018/01/14 Javascript
Vue实现开心消消乐游戏算法
2019/10/22 Javascript
es6中new.target的作用和使用场景简单示例分析
2020/03/14 Javascript
[03:33]TI9战队采访 - Infamous
2019/08/20 DOTA
星球大战与Python之间的那些事
2016/01/07 Python
Python遍历目录中的所有文件的方法
2016/07/08 Python
Python实现的txt文件去重功能示例
2018/07/07 Python
python中的不可变数据类型与可变数据类型详解
2018/09/16 Python
浅谈python写入大量文件的问题
2018/11/09 Python
python pip安装包出现:Failed building wheel for xxx错误的解决
2019/12/25 Python
CSS3实现王者匹配时的粒子动画效果
2019/04/12 HTML / CSS
一套SQL笔试题
2016/08/14 面试题
班主任评语大全
2014/04/26 职场文书
团日活动总结
2014/04/28 职场文书
我们的节日端午节活动总结
2015/02/11 职场文书
生活委员竞选稿
2015/11/21 职场文书
教你怎么用Python处理excel实现自动化办公
2021/04/30 Python
如何通过简单的代码描述Angular父组件、子组件传值
2022/04/07 Javascript