用于从可选服务获取数据的设计模式

时间:2016-08-23 11:17:00

标签: design-patterns

在我的项目中有两个不同的模块(A和B)。模块B也是可选的。但是,模块A中有一个功能可以从模块B获取数据,仅在安装模块B时

此方案是否有任何设计模式,而不是通过查看模块B的存在来禁用该功能?

2 个答案:

答案 0 :(得分:1)

您可以为模块B引入一个API,其中包含实际实现和null pattern实现。在为应用程序布线时,您可以根据模块B的可用性选择使用哪一个。

Null模式实现的行为应使模块A不知道模块B是否存在。

答案 1 :(得分:0)

是的,设计模式是多态的。使模块A抽象并创建两个子类。

  1. A1始终使用B
  2. A2从不使用B
  3. 常见逻辑保留在A中。在运行时,检查一次是否存在B,然后注入A的相应子类。