抽象PACKAGES增加系统灵活性

ZDNet软件频道 时间:2002-10-31 作者:BUILDER.COM |  我要评论()
本文关键词:
为了确保package关联的灵活性,Java程序员在开发过程中都倾向于package的抽象部分的关联而尽可能地避免具体部分的关联。这一节我们将讲述如何使系统中package关联更加灵活,达到增加系统的可扩展性和可维护性的目的。

为了确保package关联的灵活性,Java程序员在开发过程中都倾向于package的抽象部分的关联而尽可能地避免具体部分的关联。这样的好处是我们可以最大程度地减小系统中更改所带来的影响,从而获得系统的高度完整性。这一节我们将讲述一些启发式知识,这些知识确保系统中package关联更加灵活,达到增加系统的可扩展性和可维护性的目的。

Package更改是必然

关联紧密的package会减小系统的可靠性,因为package中内容的任一改变都会影响到整个系统。相反,如果package关联很少,则其内容的改变不会殃及其它部分。

大部分的web程序都需要一个日志机制以允许程序能够追踪错误信息并有助于调试。其实,日志机制是一个定制好的package成分,如Apache中的Log4j。无论这些机制是否运行,与日志机制必然有一个关联,这样就潜伏地存在系统不可靠的危机。

因为系统中有很多packages与日志机制有关联,所以必须最大程度地减小日志机制内容的更改。虽然我们不能使用外部的日志机制方式,但我们可以采用其它方法来减小系统的更改对日志机制的影响。最通用的方法是使用正面(facage)模式,这一方法在程序执行过程中可以把改变部分和其他部分隔绝。图A显示了在logfacade中的一个LoggingFacade LoggingFacade类。

Figure A

点击放大

The LoggingFacade class

正面方式可以把更改部分隔绝开,与日志机制有关联的部分都通过logfacade运行。日志机制内容可以改变或更新,但这些都被屏蔽起来,程序的其他部分不会遭受影响。

从日志机制这一角度而言,LoggingFacade类支持以下的启发式知识。

  • 更改最小的package将受到最大的关联
  • 更改最大的package将受到最小的关联

然而,这一logfacade包还是不太稳定,它会随时破坏整个系统,因为logfacade包在整个系统都要运行。我们必须找到新的一个日志机制方法,抽象package正是这一问题的答案。


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134