プロバイダパターンを使用して関連するプロバイダのグループを作成しました。今私に与えられた新しい要件のために私のプロバイダを強化したいと思います。プロバイダは、当社のWebサービスと統合する多数の顧客のために作成されました。今では、同じ顧客の一部がウェブページを使用して私たちと統合したいと考えています。私たちのWebページを見れば、フロントエンドロジックはもちろん違いますが、プロバイダロジックの半分は同じになります。だから私はプロバイダとのWebページの統合を処理するために、特に顧客のプロバイダで別の抽象クラスを追加することを考えていた。私は新しいプロバイダ名と一緒にXMLWebPageBaseProviderを指す別のプロバイダセクションを定義するapp.configを今すぐプロバイダパターンの使用 - 複数の抽象クラス
//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
:ここでの可能な拡張機能を使用してコードの元です。これはうまくいきますが、この方法でコーディングするプロバイダーパターンを濫用していますか?このことを心配する必要のある懸念や悪夢はありますか?私が上記のようにこのプロバイダのパターンを実装した人はいますか?
また、Webページ統合を使用して私たちと統合するより多くの顧客を獲得する可能性があります。私は、ソリューションにますます多くのプロバイダ(dll)を追加し続ける必要があることを嫌っています。
おかげで、 DND
複数の抽象クラスは、必ずしも悪い考えではありませんが、継承パラダイムを超える構成である可能性があります。 http://en.wikipedia.org/wiki/Composition_over_inheritance – Jeff
将来JSONのような非XML Webページプロバイダが必要な場合はどうなりますか?この場合、XMLBaseProviderで宣言されているxml固有のプロパティとメソッドの一部が冗長になります。私はこのようにします:WebPageBaseProviderをProviderBaseの抽象サブクラスとして、次にXmlWebPageBaseProviderをサブクラスのWebPageBaseProviderとして指定します。 – mishau