1. 分层优缺点:
1)优点:
- 在无需过多了解其他层次的基础上,可以将某一层作为一个有机整体来理解;
- 可以替换某层的具体实现,只要前后提供的服务相同即可;
- 可以将层次间的依赖性减到最低;
- 分层有利于标准化工作;
- 一旦构建好了某一层次,就可以用它为很多上层服务提供支持
2)缺点:
- 层次并不能封装所有东西,有时会带来级联修改;
- 过多层次会影响性能;
- 决定建立那些层次以及每一层的职责是什么难以决定
2. 企业应用中层次的演化:
C/S(领域逻辑放在客户端) -> 领域逻辑放到数据库,作为存储过程 -> 三层架构:表现层 + 领域层 + 数据源层
3. 三个基本层次:
职责如下:
层次 | 职责 |
---|---|
表现层 | 提供服务,显示信息(例如在Windows或HTML页面中,处理用户请求(鼠标点击、键盘敲击等),HTTP请求,命令行调用,批处理API) |
领域层 | 逻辑,系统中真正的核心 |
数据源层 | 与数据库,消息系统、事务管理器及其他软件包通信 |
其中,领域层,也称为业务逻辑。它的相关工作:对表现层输入的数据进行验证,根据输入数据或已有数据进行计算,根据从表现层接收到的命令来确定应该调度那些数据源逻辑
4. 为各层选择运行环境:
1)运行环境:
- 1.数据源层:服务器
- 2.表现层:胖客户,客户端;web:服务器端 (只要可能就用web表现方式,只在必须的情况下才使用胖客户方式)
- 3.领域层:全部运行在服务器端,或者全部运行于客户端,如果必须要分离则至少保证相关的部分在一起
2)一旦选择了处理节点,尽可能使所有代码保持在单一进程内完成(可能拷贝在集群中的多个节点上),否则不但损失性能,还会增加复杂性
3)复杂性增压器:分布、显示多线程、范型差异(如对象/关系)、多平台开发以及极限性要求
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。