How do you apply the Strategy pattern to select different caching strategies in .NET?
- Define a caching interface:
public interface ICacheStrategy
void Cache(string key, object value);
object Retrieve(string key);
- Implement strategies like MemoryCacheStrategy,
DistributedCacheStrategy.
- Use DI or factory to inject the chosen strategy at runtime:
public class CacheContext
private readonly ICacheStrategy _cacheStrategy;
public CacheContext(ICacheStrategy cacheStrategy)
_cacheStrategy = cacheStrategy;
public void Cache(string key, object value) =>
_cacheStrategy.Cache(key, value);
This enables switching caching mechanisms without code changes.