

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# API 相容讀取包裝函式設計
<a name="wrapper-design"></a>

當您將快取層引入 DynamoDB 資料庫時，通常想要避免大量的用戶端程式碼修改。其中一種方法是引進用戶端 shim 類別，該類別會包裝 DynamoDB 用戶端，並將相同的界面呈現給呼叫者。所有快取邏輯都包含在包裝函式類別中，並向發起人隱含且隱含地執行。

例如，下列程式碼範例會建構 DynamoDB 用戶端、ElastiCache (Redis OSS) `CacheClient` 用戶端和 shim。該 shim 看起來像 DynamoDB 用戶端，並在內部使用 `dynamodb_client` 與資料庫交談，並使用 `redis_client`提供快取：

```
dynamodb_client = boto3.client("dynamodb")

redis_client = Redis(host='hostname', port=6379, decode_responses=True, ssl=True, read_from_replicas=True)

cache_client = CacheClient(dynamodb_client, redis_client, ttl=60*60)
```

此方法不需要應用程式中的任何其他變更，即可引入快取。