Хорошо, допустим, у меня есть класс DataRepository с методами, getNames () и getStates (). допустим, эти данные хранятся в веб-сервисе или базе данных, что является дорогостоящей операцией.
после запуска и возврата первого запроса, когда потребитель запросил эти методы, он сразу же возвращается, поскольку результаты кэшируются в классе DataRepository.
проблема в том, что при первом вызове вы хотите, чтобы поведение было асинхронным, чтобы избежать блокировки этого дорогостоящего вызова. Каков наилучший способ закодировать это? Тот факт, что этот класс DataRepository выполняет как фактическое межграничное извлечение, так и кэширование, нарушая принцип единой ответственности.
есть еще какие-нибудь мысли о лучших практиках здесь?