最近在复习OSI七层模型,感觉软件体系结构和网络体系结构在处理问题上都使用了分层的思想,有异曲同工之妙。
例如对于一个B/S多层经典架构和OSI七层模型,这么做的目的都是为了:
1、将复杂的问题分而治之。
2、封装变化。将变化交给具体的公司/人去处理实现,将不变的地方抽象为接口。
3、层与层之间用接口调用。
对于网络体系结构来说,层与层之间的上下关系就是接口,下层为上层提供服务,或者说原语(Primitive)。位于不同主机上的同一层次使用协议进行虚拟通信。上下层不了解对方协议的具体实现,这为扩展和变化提供了基础。
另外,在面向对象中也有类似的思想。对象向别人隐藏了其数据和处理细节,只提供方法让其他人调用。