作者:龙尘
链接:https://www.zhihu.com/question/47239021/answer/368142128
来源:知乎
向前forward基本等同于向上,向后backward基本等同于向下(backward,回溯,以前的,自然对应的是基础的,下面的)。
在理解向前兼容和向后兼容前,先要知道这是用在什么结构中的。
能用到向后兼容和向前兼容, 那么肯定是存在接口概念的。
也就是说存在一个系统提供接口供外部使用, 外部应用使用这个接口。
然后就存在系统迭代周期和应用迭代周期不一致的问题,这时候就出现了向前兼容和向后兼容的说法。
向后兼容就是 , 使用旧接口的应用,能够运行在新的系统上。 就比如其他回答者说的:
“Windows 10要能运行为Windows 3.1开发的程序” (在这里,Window是系统,开发的程序就是使用系统接口的应用。应用使用了旧的接口,系统是新的系统)
“RFC2018的设备能够兼容RFC793协议”(在这里,使用TCP协议的设备都是系统,但是存在一些设备使用了 RFC2018协议, 一些设备使用了 RFC93协议 。使用了 RFC93协议的设备就是使用了旧的接口,使用了 RFC2018协议的设备就是新系统)
“2007 Microsoft Office 系统能够打开 Office 2000和Office 2003的文件” (在这里,Office是系统,文件就是使用接口的应用。Office 2000和Office 2003的文件就是使用了旧的接口 , Office 2007 就是新的系统)
“CD盘可以放在CD光驱播放,也可以放在DVD光驱播放。”(光驱是系统,CD盘是使用接口的应用。CD是旧接口, DVD光驱是新系统)
向前兼容就是 , 使用了新接口的应用,运行在旧的系统上。系统对于未定义的接口,他不认为是错误的,而是不处理,也就是 “忽略掉早期版本中未实现的功能”
“Windows 3.1要能运行为Windows 10开发的程序” (应用使用了一些新的接口,但是系统却是旧的系统)
“Word 2003 能够打开用Word 2007创建的文件。”(Office是系统,文件就是使用接口的应用。Office 2007的文件就是使用了新的接口 , Office 2003 就是旧的系统)
“USB3.0的U盘,插在USB1.0的接口上”()
兼容性是形容系统的。
系统向后兼容 , 也就是兼容以前的 , 就说明系统是相对新的。
系统向前兼容 , 也就是兼容未来的 , 就说明系统是相对旧的。