dev2dev 首页 > 资源中心 > 技术文章
兼容性设计
时间:2004-06-01
作者:Jim D'Ambrosia
浏览次数:
本文关键字:兼容性,p接口 文章工具
推荐给朋友
打印文章
兼容性正在成为Java软件的一个日益重要的品质。本文讨论了兼容性的总体情况,具体包括什么是兼容性、兼容性为何重要以及不易实现的原因。接着转向讨论如何使Java应用程序和框架更具向后和向前兼容性。
我是最近才加入兼容性团体的。我的第一份软件开发工作是编写在公司内部使用的库。虽然可以预料到升级会破坏兼容性,但只要破坏程度不至于难以修复就可以接受。我的客户需要升级功能,而我却是镇上惟一的供应商,因此他们一般会容忍我向他们提出的任何要求。
在此之后,我进入了.com世界。兼容性在那里并不是很重要,重要的是要尽快开发出第一个版本以使公司因拥有产品而得以生存。这样下去可能会造成兼容性问题,但我们必须首先确保公司的生存。
现在我的职位是一名现有产品的软件开发人员,兼容性问题就不同一般了。我们有自己的客户,并希望能够保住他们。一般来说,与选择一家新的供应商并遭受迁移和需要重新学习所带来的痛苦相比,升级要容易一些。但是如果我们发布了升级版本,却不保持兼容性,那我们就会失去升级带来的优势。这就是关键之所在,如果您不保持兼容性,那么升级就只是市场上的另外一个产品,用户也会如此认为。
兼容等级
我们已经讨论了兼容性是软件产品的一个重要品质。与软件的其他品质一样,要想实现兼容性通常需要在开发和维护过程中付出代价。像大多数软件品质一样,这不是绝对的,但却普遍存在。下面我们来说明Java类的一些可能的兼容等级。
l 编译不兼容:客户现有的类不会编译,因此不会升级运行。
l 接口兼容:客户现有的类会编译升级,但部署新库之前必须对其进行重新编译。
l 二进制兼容:客户可以升级部署现有的jar并运行。
总体上讲,应用程序的兼容性可粗略分为三种情况