外部APIをラップするための軽量のRubyコードを作成しました。
api = ExternalAPI.new
api.expensive_operation(object)
正常に動作します。ただし、APIは高価なので、必要がない限り呼び出したくありません。これが、API呼び出しをローカルキャッシュでラップする高レベルのAPIを作成している理由です。APIがどのようにキャッシュされるかについての詳細をアプリケーションが心配する必要はありません。(キャッシュは、メモリ、ディスク、そろばん、さらにはハトによっても実行できます。アプリケーションの問題ではありません。)
これが私が現在検討していることです:
ラッパー=ExternalAPIWrapper.new wrapper.expensive_operation(object)
名前が気に入らないExternalAPIWrapper
。これは一般的であり、ラッパーの目的を伝えません。特に、最初にローカルキャッシュをチェックし、必要な場合にのみ低レベルAPIにヒットすることを示すものではありません。
この出発点を改善する答えを探しています。これが私が探しているものです:
- 高レベルのクラスのより良い名前
- より良いスタイルのAPI
- 役立つ可能性のあるデザインパターン
- (おそらくロングショット...)API呼び出しをラップしてキャッシュするRuby gem