0

私の質問は、インターフェイスの実装 (インターフェイス分離の原則)と密接に関連していますが、さらにアドバイスをいただければ幸いです。

郵便料金の見積もりを提供する 2 つの郵便料金 API があります。唯一の共通点は石鹸です。私は、これらの API とやり取りするアプリケーション コードを、両方の API が実装するラップされた「Postage Driver」インターフェイスを作成することによって作成しました。次に、「郵便料金計算」クラスを使用します。このクラスは、共通のインターフェイスを介してこれらの「ドライバー」を利用し、正確な方法を知らなくても郵便料金を計算します。

私の質問は、これらの API が非常に異なっていることです (1 つはメソッド パラメーターとして渡される資格情報を必要とし、もう 1 つは資格情報に xml ファイルを使用します。1 つは総重量で送料を計算し、もう 1 つはパッケージの詳細で計算します)。私のコードを抽象化するためのインターフェースは最良の方法ですか? 「Postage Calculator」クラスに条件付きコードをコーディングし、API を直接使用する方がクリーンで洗練されているように感じ始めています (ただし、柔軟性が低く、将来的に保証されません)。

どんなアドバイスでも大歓迎です。ところで、私は PHP で書いていますが、より多くの「一般原則」のアドバイスを求めています。

4

1 に答える 1

0

私は Wrikken に同意します。いつでも認証インターフェイスを郵便料金インターフェイスに渡すことができます。次に、本当に違うクラスに違いを伝えているだけです。

同様に、郵便料金を計算するためのインターフェイス (おそらく IPostageSpecificationByWeight と IPostageBy?) を作成することもできます。次に、サービスが使用する基本クラスまたはインターフェイスにそれらを挿入できます。

これと同じ概念を、認証メソッドと計算メソッドを派生クラスに実装する抽象クラスで処理できます。これらを使用する一般的なメソッドは抽象クラスにあり、インターフェースは 1 つだけです。これを抽象化する方法はたくさんありますが、これらはいくつかのオプションにすぎません。

于 2012-12-12T02:00:57.890 に答える