< p> 提供程序类型< /span>定义了一个接口,这个接口与应用程序块必须正确执行的能力相关联。提供程序是提供类型的特定实现,每个应用程序块包含每个提供程序类型的一个或多个提供程序。也要以为应用程序块编写定制的提供程序。分离应用程序块的功能与它的能力的特定实现可以得到以下好处:
可变性。使用这一点,可以从同一功能的多个实现中进行选择,根据特定应用程序的需要。
扩展性。使用这一点,可以在存在问题而有一个委托实现的环境中使用应用程序块。例如,应用程序在部署到特定环境中时需要一种指定的加密算法。
封装性。使用这一点,可以在使用应用程序块的环境中反应改变。使用提供程序,功能不再是是应用程序块内核的一部分,功能可以被替换和升级而不会影响应用程序块的其他部分。
跨平台移植性。使用这一点,可以使用特定于目标环境的提供程序来部署应用程序块到新的环境中。也可以创建运行于某个环境的提供程序,以模拟不同环境的行为。
< p>最少耦合。应用程序块对其他应用程序块的依赖可以被封装到提供程序中。这意味着应用程序块不会被它所依赖的应用程序块的修改而破坏。例如,异常处理应用程序块包含日志异常处理程序,此处理程序依赖于做为一个提供程序包含的日志应用程序块。一个新的日志应用程序块将仅需要一个新的日志处理提供程序;异常处理应用程序块的其他部分将不用改变。
关于如何创建自己的提供程序的信息,请参见:添加应用程序代码。
