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


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

面试题 相关文章推荐
DBA数据库管理员JAVA程序员架构师必看
Feb 07 面试题
介绍一下Transact-SQL中SPACE函数的用法
Sep 01 面试题
.NET里面什么时候需要调用垃圾回收
Jun 01 面试题
如何选择使用结构还是类
May 30 面试题
接口的多继承会带来哪些问题
Aug 17 面试题
一些Unix笔试题和面试题
Sep 25 面试题
说说在weblogic中开发消息Bean时的persistent与non-persisten的差别
Apr 07 面试题
如何整合JQuery和Prototype
Jan 31 面试题
什么是Web Service?
Jul 25 面试题
介绍一下Java中的static关键字
May 12 面试题
Java程序员面试题
Jul 15 面试题
JAVA软件工程师测试题
Jul 25 面试题
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实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
详解PHP5.6.30与Apache2.4.x配置
2017/06/02 PHP
php工具型代码之印章抠图
2018/07/18 PHP
用js实现层随着内容大小动态渐变改变 推荐
2009/12/19 Javascript
禁止js文件缓存的代码
2010/04/09 Javascript
jQuery 表格工具集
2010/04/25 Javascript
js focus不起作用的解决方法(主要是因为dom元素是否加载完成)
2010/11/05 Javascript
js简单的弹出框有关闭按钮
2014/05/05 Javascript
JavaScript设计模式之策略模式实例
2014/10/10 Javascript
jQuery支持动态参数将函数绑定到事件上的方法
2015/03/17 Javascript
jQuery实现仿百度帖吧头部固定导航效果
2015/08/07 Javascript
jQuery实现MSN中文网滑动Tab菜单效果代码
2015/09/09 Javascript
jQuery div拖拽用法实例
2016/01/14 Javascript
JavaScript判断页面加载完之后再执行预定函数的技巧
2016/05/17 Javascript
基于BootStrap的图片轮播效果展示实例代码
2016/05/23 Javascript
AngularJS控制器之间的数据共享及通信详解
2016/08/01 Javascript
js判断出两个字符串最大子串的函数实现方法
2016/11/01 Javascript
使用openSpeDiv方法实现Ecshop登录弹窗框效果
2017/03/13 Javascript
AngularJs用户登录问题处理(交互及验证、阻止FQ处理)
2017/10/26 Javascript
ionic3实战教程之随机布局瀑布流的实现方法
2017/12/28 Javascript
javascript触发模拟鼠标点击事件
2019/06/26 Javascript
弱类型语言javascript中 a,b 的运算实例小结
2019/08/07 Javascript
Vue路由守卫及页面登录权限控制的设置方法(两种)
2020/03/31 Javascript
JS+CSS实现炫酷光感效果
2020/09/05 Javascript
[00:27]DOTA2战队VP、Secret贺新春
2018/02/11 DOTA
举例讲解Python的Tornado框架实现数据可视化的教程
2015/05/02 Python
Django中对通过测试的用户进行限制访问的方法
2015/07/23 Python
Python将list中的string批量转化成int/float的方法
2018/06/26 Python
解决win64 Python下安装PIL出错问题(图解)
2018/09/03 Python
python高级特性和高阶函数及使用详解
2018/10/17 Python
python图形工具turtle绘制国际象棋棋盘
2019/05/23 Python
django foreignkey外键使用的例子 相当于left join
2019/08/06 Python
python中绕过反爬虫的方法总结
2020/11/25 Python
Dockers美国官方网站:卡其裤、男士服装、鞋及配件
2016/11/22 全球购物
日化店促销方案
2014/03/26 职场文书
2015迎新晚会开场白
2015/07/17 职场文书