不同层次,不同抽象:构建高效软件系统的关键
1 引言
软件系统通常由多个层次组成,每个层次依赖于下一层提供的功能。在设计良好的系统中,每一层都提供了不同于其上下层的独特抽象。这意味着,当我们跟踪一个操作在不同层次之间的传递时,每次方法调用都会改变抽象级别。本篇文章将探讨这一原则的重要性,并通过具体例子和策略帮助开发者更好地理解和实践。
2 文件系统与网络传输协议中的抽象层次
2.1 文件系统
文件系统是一个很好的例子,展示了不同层次如何提供不同的抽象。最顶层实现了文件抽象,文件由可变长度的字节数组组成,可以通过读取和写入可变长度的字节范围来更新。下一层实现了内存中的固定大小磁盘块缓存,确保常用块可以快速访问。最低层则是设备驱动程序,负责在辅助存储设备和内存之间移动数据块。
2.2 网络传输协议(如TCP)
在网络传输协议中,最顶层提供了一个可靠的字节流抽象,确保数据从一台机器可靠地传输到另一台。这一层建立在较低层次之上,后者以尽力而为的方式传输有界大小的数据包。大多数数据包将成功传输,但可能会丢失或顺序错乱。
层次 | 抽象描述 |
---|---|
最高层 | 文件抽象:可变长度的字节数组,支持读写 |