1

クラスが3つあり、使用するクラスを1つ選択する必要がある場合。次に、標準的な方法を使用して、ファイルにアクセスできます。標準的な方法が1つある理由は、異なるプロトコルが使用されている場合にコードが書き直されないようにするためです。

MAPIたとえば、、、という3つのクラスがWebDAVありEWSます。各クラスには、ExchangeServerから情報を取得する独自のメソッドがあります。各クラスにアクセスするためのすべての標準メソッドを備えたクラスが必要です。システム管理者として、最初に使用するプロトコルを選択し、次にシステムが実行するプロセス(情報の取得、情報の更新など)を選択します。このように、システム管理者は、プロトコルを変更するたびにコードを編集する必要がないため、プログラミングの知識は必要ありません。

どのデザインパターンを使用する必要がありますか?アダプタデザインパターンまたはプロキシデザインパターンを使用する必要がありますか?私は現在、プロキシ設計を使用して、抽象クラスと別の3つのクラスABとCがあり、1つの追加クラスであるManagerクラスが抽象クラスのメソッドを継承するように設計しています。

Managerクラスを使用して、いずれかの1つのクラスへのアクセスを管理します。しかし、アダプターパターンを見ると、より良い選択のように思えます。どちらを使うべきですか?

4

2 に答える 2

1

ここでは、アダプターもプロキシーのデザインパターンも必要ないようです。

あなたの質問から、操作のための共通のインターフェースを提供する抽象基本クラス、異なるプロトコルを使用する3つの具象クラス、および必要な具象クラスをインスタンス化するマネージャー(ファクトリ)があるように思われます。それはあなたのニーズには問題ないように聞こえます。

于 2013-02-11T06:26:50.000 に答える
0

MAPI、WebDAV、EWS のサポートを共通インターフェースなしで個別のクラス (ライブラリ) として実装していない場合は、共通インターフェースを使用して実装してください。共通インターフェース ( ) の具体的な実装が必要です。設計パターンは必要ありません。(ProvidersIDataProvider

MAPI、WebDAV、EWS のサポートを、共通のインターフェイスを持たない個別のクラス (ライブラリ) として既に実装している場合は、アダプター パターンが適しています。たとえば、具体的な実装には共通のインターフェイスがありません (、、、メソッドを参照)。Create()CreateItem()AddItem()

クラス図

この場合、プロバイダ クラスはアダプタです。

于 2013-02-11T06:34:41.873 に答える