使用提供者模式创建一组相关的提供者。现在由于新的要求,我想提高我的提供商。供应商是为一些与我们的Web服务集成的客户而创建的。现在,有些相同的客户希望通过网页与我们进行整合。通过我们的网页,前端逻辑当然会有所不同,但提供者逻辑的一半是相同的。所以我在考虑在特定的客户提供商中增加另一个抽象类来处理与提供商的网页集成。下面是使用可以增强代码例如:使用提供者模式 - 多个抽象类
//Same Customer provider dll
//Methods defined for handling web service integration
public abstract class XMLBaseProvider : ProviderBase
//Methods defined for handling web page integration logic
public abstract class XMLWebPageBaseProvider : XMLBaseProvider
现在在App.config我定义指向一个新的供应商名称XMLWebPageBaseProvider沿着另一个供应商部分。这工作,但我想滥用提供者模式编码这种方式?是否有任何担心或陷阱我应该担心这样做。有人在这里实现了像我上面描述的这种提供者模式吗?
另请注意,我们可能会获得更多的客户,他们将使用网页集成与我们整合。我只是讨厌不断增加越来越多的提供者(DLL)到解决方案。
感谢, DND
多个抽象类并不一定是个坏主意,但要考虑的事情可能是继承范例的构成。 http://en.wikipedia.org/wiki/Composition_over_inheritance – Jeff
如果将来需要非XML网页提供程序,如JSON,会怎么样?在这种情况下,在XMLBaseProvider中声明的一些xml特定的属性和方法会变得多余。我会这样做:WebPageBaseProvider作为ProviderBase的抽象子类,然后将XmlWebPageBaseProvider作为子类WebPageBaseProvider。 – mishau