Всякий раз, когда у вас есть сценарий, в котором один и тот же ключ может привести к разным результатам, вы, вероятно, захотите отдельный кеш.
Пример 1:
getBestDog(name)
- использовать имя в качестве ключа из кеша 'best-dogs'
getBestBrownDog(name)
- используйте имя в качестве ключа из кеша 'best-brown-dogs'
Пример 2:
getBestDogByName(name)
- так же, как в примере 1, используйте имя в качестве ключа из кеша 'best-dogs'
getBestDogByColour(colour)
- использовать цвет в качестве ключа из кеша "лучшие собаки по цвету"
Что дает вам 3 тайника: «лучшие собаки», «лучшие коричневые собаки», «лучшие собаки по цвету»
Теоретически, вы можете объединить «лучших собак» и «лучших собак по цвету» ... но, возможно, у вас есть собака, которую называют «рыжая» ... так что это будет неучтенный случай. .