快速业务通道

动态扩展Java应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-22
forName()方法的类是一个扩展,将不会在CLASSPATH的目录中搜索这个被动态载入的类。如果你想了解关于这个问题的深入讨论或者ClassNotFoundExceptions的一些意外,你可以参考http://java.sun.com/products/jdk/1.3/docs/guide/extensions/index.html。

你还要注意本文末提到的一个技巧,就是为你的接口加上版本号,以避免当你的程序修改时,令动态扩展无效。

让你的应用变灵活

现在你已经有足够的知识来使用接口和动态类载入,以令你的程序更加 灵活。在例子中,我向你展示了如何使用一个文本文件来载入新的功能。你可以体验一下这些代码,并且思考如何扩展它。现在你可以创建出灵活的程序,无需你的源代码,别人就可以加入新的功能。

为接口加入的版本信息

如果你创建了一套接口来让你的客户/用户来扩展你的应用,要确保加入版本的信息。这样可让你在未来修改或者加入接口时,不会影响到客户已经编写的代码。其中的一个方法是为你的包名指定一个版本信息。

假定你的应用中的基本package名为brokerage.。你决定客户通过接口来扩展你的应用时,使用的是brokerage.customer。在上面的例子中,IPricingPlan接口可以放到这个包中。你需要在包名中加入版本的信息以和将来修改的接口隔离开来。 在第一次发布你的接口时,包名可以是brokerage.version1.customer。如果将来你要修改IPricingPlan接口,你可以将它放到brokerage.version2.customer中。你必须在你的代码中支持

这两个接口。如果不支持第一次发布的接口的话将需要客户修改他们现有的程序,这样将令用户不快,第一次加入的版本号也没有意义了。

其它要记住的方面是:在声明你的方法或者变量的时候,你应该经常包含版本的名字。这可以让你以后免受版本方面的烦恼。你也应该要求你的客户这样做。我并不是说要在你的变量名字中加入version1,而是在声明变量的时候使用版本的信息:

public brokerage.version1.customer getCurrentCustomer() { ... }

当然,允许更大的用户定制意味着客户可能会给你的应用带来bug。在这种情况下,你要让你的客户知道,如果是由于他们代码中的问题而花费了你们的调试时间,他们应该为此而付费。

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号