5

Python で API を作成する場合、init を使用して基本オブジェクトのインスタンスを作成する際にどのようなアプローチを取るべきかわかりません。

API でオブジェクトのインスタンスを作成する場合、ユーザーはオブジェクトを次の 2 つのいずれかにすることを希望する可能性が高くなります。

  1. API が呼び出されているオブジェクトに既に存在するオブジェクトのインスタンス
  2. API が呼び出されている対象に新しいオブジェクトを作成する

これに対して受け入れられている設計パターンはありますか? init は空のオブジェクトを作成するだけで、消費者は get メソッドまたは set メソッドを呼び出す必要がありますか? あるいは、これが get か set かについて init が引数を取るべきでしょうか? または最後に、init への引数から get または set を推測する必要がありますか?

4

1 に答える 1

2

次の理由から、あなたが説明しているものと正確に一致するデザインパターンは考えられません。

以下にAPIをオーバーロードしてみてはどうでしょうか?

引数なしで呼び出した場合:

custom_API()

次に、適切なデフォルト値を使用して新しい基本オブジェクトを作成し、消費者が get / set を使用してそれを構成できるようにします。

ある種の検索キーで呼び出された場合:

custom_API("abc")

対応するオブジェクトを返すか、検索キーのオブジェクトのリストがあいまいな場合、またはNone一致するオブジェクトが見つからない場合。

于 2012-12-20T18:31:25.610 に答える