我构建了一个轻量级的 Ruby 代码来包装外部 API:
api = ExternalAPI.new
api.expensive_operation(object)
它工作正常。但是,由于 API 很昂贵,除非必要,我不想调用它。这就是为什么我要创建一个使用本地缓存包装 API 调用的更高级别的 API。我不希望应用程序不必担心有关如何缓存 API 的细节。(缓存可以通过内存、磁盘、算盘,甚至鸽子来完成——这不是应用程序关心的问题。)
这是我目前正在考虑的:
包装器 = ExternalAPIWrapper.new wrapper.expensive_operation(object)
我不喜欢这个名字ExternalAPIWrapper
。它是通用的,不传达包装器的目的。特别是,它并不表示它首先检查本地缓存,并且仅在必要时访问低级 API。
我正在寻找在这个起点上有所改进的答案。以下是我正在寻找的一些东西:
- 高级班更好的名字
- 更好的样式 API
- 可能有帮助的设计模式
- (也许是一个远景......)一个包装和缓存 API 调用的 Ruby gem