在多个请求处理器共享这个生成的商品目录前,对它进行审查。
为调用方提供的 SKU 构建不区分大小写的目录,把容量限制为 1,000 项,在并发下每个逻辑 SKU 最多加载一次,并返回按 SKU 排序的稳定不可变快照。
csharp
using System.Collections.Generic;
public sealed record Product(string Sku, string Name);
public sealed class ProductCatalog
{
private readonly Dictionary<string, Product> _bySku = new();
public Product Get(string sku)
{
if (!_bySku.ContainsKey(sku))
{
_bySku[sku] = LoadProduct(sku);
}
return _bySku[sku];
}
public IReadOnlyCollection<Product> Snapshot() => _bySku.Values;
private static Product LoadProduct(string sku) => new(sku, "loaded");
}
生成代码仅作示例,不代表任何特定模型