aiocache icon indicating copy to clipboard operation
aiocache copied to clipboard

Merge cache implementation classes for each backend

Open padraic-shafer opened this issue 1 year ago • 0 comments

Background

Each backend cache implementation is currently split into two classes, with the "interface" class derived from the "backend" class.

  • SimpleMemoryCache subclasses SimpleMemoryBackend, which subclasses BaseCache[str].
  • MemcachedCache subclasses MemcachedBackend, which subclasses BaseCache[bytes].
  • RedisCache subclasses RedisBackend, which subclasses BaseCache[str].

Suggestion

Merge each pair into a single subclass of BaseClass. In other words, the ...Backend classes do not appear to provide any benefit or value by being distinct classes.

  • SimpleMemoryCache is highly bound to SimpleMemoryBackend, even in its name. It seems unlikely that anyone would use SimpleMemoryBackend directly, rather than using SimpleMemoryCache.
  • Also SimpleMemoryBackend does not appear to provide value as a base class for user customization. If a specialized memory cache is needed, one would probably derive from SimpleMemoryCache and override only what is needed, or derive from BaseCache if more extensive changes are required.

Question

Are any aiocache users relying on SimpleMemoryBackend, MemcachedBackend, RedisBackend classes, or could their functionality be merged into the corresponding ...Cache implementations?

padraic-shafer avatar Mar 04 '23 20:03 padraic-shafer