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