勿在浮沙筑高台。
- 分层模型中,不同的层次意味着不同的抽象级别;
- 抽象也是一种凝聚
- 附庸的附庸不是附庸;
- 每一层只需考虑与其相邻的上下两层,而无需考虑更高或者更低的层次;
- 不考虑,也即不关心(仅考虑自身),也即看不见,看不见更低和更高的层次;
- 底层向高层提供服务;
- 将物理层向上抽象为逻辑层,逻辑层向上提供公共接口,这样上层直接面对逻辑层,而无需直接跟复杂异构的物理层交互,这也是一种抽象和分层。
- 见下文的 LBA(磁盘逻辑分区)
0.分层思想的典型应用
- 框架设计:
- Spring 框架:
- 持久层: 数据访问操作;Spring JDBC
其主要工作即是从数据库表中加载数据并实例化领域对象,或者反之将领域对象持久化到数据库表中; - 业务层:
事务管理;声明式事务; - 展现层:
MVC 等企业应用;Spring MVC
- 持久层: 数据访问操作;Spring JDBC
- Spring 框架:
1. 计算机系统的各个抽象层
- 操作系统和硬件之间的称为硬件抽象层(Hardware Abstraction Layer,HAL)
- 每个层次都向上一层次呈现一个抽象,一个更高级别的抽象;
- 每一层都只需知道下层抽象的接口,而不需要了解其内部运行机制;
- 操作系统看到的硬件是一个硬件抽象层,而不需要了解硬件的布线或者电气特性等;
- 这样,以层的方式抽象资源的好处在于每一层都只需考虑本层的设计及其相邻层的相互交互,从而降低系统设计的复杂性,提高软件的可移植性;
2. 磁盘逻辑分区(LBA)
每个盘面上同心圆的周长不一样,如果按照每个磁道拥有相同数量的扇区,那么靠近盘面外围的磁道密度肯定比内圈更加稀疏。显然这样是十分浪费空间的,但是如果不同的磁道扇区数不同,计算起来就十分麻烦。为了屏蔽这些复杂的硬件细节,现代的硬盘普遍使用一种叫做 LBA(Logical Block Address)的方式。即整个磁盘所有的扇区从 0 开始编号,一直到最后一个扇区,这个扇区编号叫做逻辑扇区号。逻辑扇区号抛弃了所有复杂的磁道、盘面之类的概念。当我们给出一个逻辑扇区号时,硬盘的电子设备会将其转换成实际的盘面,磁道等这些位置。
3. ISO/OSI 参考模型 —— 计算机网络分层模型
OSI(Open System Interconnection)开放系统互联模型室友 ISO(International Standard Organization)国际标准化组织定义的网络分层模型,共七层。
- 物理层:传输的单位(PDU)是 bit
- PDU:protocol data unit,对等层(peer entities)之间传递的数据单位;
- 数据链路层:传输的单位(PDU)是 frame
- 网络层:传输的单位(PDU)是 packet,分组,也叫包;
- 传输层:传输的单位(PDU)是 segment,
- 会话层:传输的单位(PDU)是:SPDU(session pdu)
- 表示层:传输的单位(PDU)是:ppdu(presentation pdu)
- 应用层:传输的单位(PDU)是:APDU(Application pdu)