在我的项目中有两个不同的模块(A和B)。模块B也是可选的。但是,模块A中有一个功能可以从模块B获取数据,仅在安装模块B时。
此方案是否有任何设计模式,而不是通过查看模块B的存在来禁用该功能?
答案 0 :(得分:1)
您可以为模块B引入一个API,其中包含实际实现和null pattern实现。在为应用程序布线时,您可以根据模块B的可用性选择使用哪一个。
Null模式实现的行为应使模块A不知道模块B是否存在。
答案 1 :(得分:0)
是的,设计模式是多态的。使模块A
抽象并创建两个子类。
A1
始终使用B
。A2
从不使用B
。常见逻辑保留在A
中。在运行时,检查一次是否存在B
,然后注入A
的相应子类。