插件
作者:David Rice 和 Matt Foemmel
在配置期间链接类,而不是在编译期间。
有关完整描述,请参阅 EAA 模式 页面 499
当应用程序代码在多个运行时环境中运行时,每个环境都需要特定行为的不同实现,通常使用分离接口 (476)。大多数开发人员通过编写工厂方法来提供正确的实现。假设您使用分离接口 (476) 定义主密钥生成器,以便您可以使用简单的内存中计数器进行单元测试,但使用数据库管理的序列进行生产。您的工厂方法很可能包含一个条件语句,该语句查看本地环境变量,确定系统是否处于测试模式,并返回正确的密钥生成器。一旦您拥有几个工厂,您就会遇到混乱。建立新的部署配置 - 例如“针对内存中数据库执行单元测试,不进行事务控制”或“在生产模式下针对 DB2 数据库执行,进行完整的事务控制” - 需要编辑多个工厂中的条件语句,重新构建和重新部署。配置不应该散布在整个应用程序中,也不应该需要重新构建或重新部署。插件通过提供集中式运行时配置来解决这两个问题。