С макушки моей головы ...
- Создание интерфейса с общими методами, связанными с кэшем (add (), remove (), refresh () приходит на ум как наиболее очевидные из них).
- Создание реализаций этого интерфейса, которые используют требуемый кеш («MyEhCacheImplementation» и «MyMemCachedImplementation» или что-то в этом роде).
- Создайте CacheFactory, которая возвращает некоторый тип кэша на основе простого значения, такого как число, строка или перечисление. Не забудьте сделать запасной вариант для реализации по умолчанию!
- создать какой-то способ для внедрения этого единственного значения в фабрику при инициализации, например, если у вас есть какой-то класс, который читает различные настройки во время запуска, или вы используете Spring applicationContext.xml или что-то подобное, вам нужно создать метод инициализации для вашего кэша, который принимает этот единственный параметр, вызывает фабрику и возвращает правильный тип кэша и / или устанавливает его в каком-то месте, откуда вы его используете.
Я полагаю, что это все, что вам нужно структурно, чтобы заставить его работать надежно, и чтобы вы могли расширять его всякий раз, когда захотите.