我编写了一个相当复杂的应用程序应用程序,它使用了第一个示例,这就是我如何证明设计的合理性。在我的案例中,有一个与承保案例定价相关的通用界面,但有几个供应商可以提供不同的 Web 服务来填充实际数据。这是包结构
com.example.pricing
\IPricingProvider.java
\AbstractPriceProvider.java
com.example.pricing.vendorA
\PricingEngine.java
com.example.pricing.vendorB
\PricingEngine.java
com.example.pricing.vendorC
\PricingEngine.java
然后在我的代码中,我使用import
来连接我想要的引擎。像这样:
import com.example.pricing.*;
import com.example.pricing.vendorB.*;
IPricingProvider provider = Engine.create();
对我来说,优势是能够为每个供应商提供复杂而混乱的实现(两个是基于 rest 的,一个是使用 Web 服务,wsimport
因此生成了很多 Java 文件),并且不会让 Eclipse 自动完成看起来像一场噩梦。此外,它还使将单个供应商移交给不同的开发人员变得更加容易。