This abstract base class relieves subclasses from certain tasks
by implementing them using other more basic methods.
The basic methods that still have to be implemented are:
- put(key, value)
- getAll(key, value)
- delete(key, value)
Subclasses are still encouraged to overwrite as many methods as
possible for better performance.