0

私は Web アプリを持っており、最初はfeedparserブログからデータを取得していました。今、私はGoogle API他のさまざまな機能を拡張するために使用することを考えました。

古いコードを壊したくなかったので、追加のアドオン タイプとして新しい API を追加したかったので、状況に応じてパーサーBeautifulSoupを選択する選択肢を提供する場所と非常によく似た構造をセットアップすることを考えました。HTML/ XML

BeautifulSoup(markup, "html.parser") 
BeautifulSoup(markup, "lxml")
# They still support the same methods mentioned in the documentation.

これは私がしたことです:

from apis import api1, api2
from dev_user import my_api_choice
select = { "api1" : api1, "api2": api2 }

obj = pservice (select["my_api_choice"] )
obj.method1() 
# invokes method1 of the inherited class.

pserviceラップアップクラスに非常に近いです。最初は、Google API を使用する機会があるので、それを作成することを考えていました。

api2 (Google API 機能を提供する) が api1 と同じ種類のメソッドを提供することも確認しました (メソッド名も同じです)。

それで、これはそれを行う良い方法ですか?または、どうすれば他の方法でそれを行うことができますか..

4

1 に答える 1

2

orのようなメソッドを使用しabstract class APIて を作成し、/ / などのクラスの下に具体的な実装を構築することができます...abstractfetchpullinheritAPI1API2

たとえばfetch、Google API の関数の実装は for に対して行われHTML、同じ方法でfetch関数は...feedparserを使用して実装されます。XML

要件または現在の構成または入力に基づいて; メソッド名はすべてのクラスで同じになるので、それに応じて起動するだけで済みAPIます。dynamic instancefunctioninstance

さらに、後でAPI3構成を導入および更新して、API3 クラス インスタンスを別のcontentプロバイダーとして使用できます。

于 2012-08-06T19:14:03.783 に答える