2012-02-13 4 views
2

Что вы формально называете объектом, единственной целью которого является чтение и кеширование (не запись) постоянного объекта хранения (т. Е. Таблицы базы данных)?Какое формальное название для этого?

Примеров того, что я имею в виду может быть строка читатель локализованы языка, который я мог бы использовать так:

Language.Get("hello_world", "en_US") // returns "Hello, world" 

или считывающая конфигурацию, например:

Config.Get("max_connections") // returns 3000 

Поэтому я хочу знаю, потому что я нахожу, что пишу много таких объектов и хочу их правильно классифицировать. «Модель» мне показалась неправой, потому что обычно модель выполняет операции записи и более сложную бизнес-логику. В этом случае объект только считывает и кэширует.

+3

Вы можете просто назвать его кешем. :-) – templatetypedef

+0

Как вы сказали - «его единственная цель - читать и CACHE» .. так называете кеш! :) «В компьютерной инженерии кэш - это компонент, который прозрачно хранит данные, чтобы будущие запросы на эти данные можно было обслуживать быстрее». (Википедия) – stmax

ответ

0

Меморандум - это акт «запоминания» результатов потенциально дорогого (но инвариантного) вычисления, так что его не нужно переучитывать. Это способ реализации LazyEvaluation, и это ключевая функция в LazyFunctionalLanguage, где это делается неявно. Кроме того, memoization не требует никакого «поиска», как правило - каждое запоминающее выражение переносит с собой свою «записку», поэтому легко определить, нужно ли оценивать выражение или нет.

Кэширование относится к акту «запоминания» дорогостоящего вычисления или ввода-вывода. Кэширование может быть доступно только для чтения (в том случае, когда кэшированная вещь не может быть изменена) или чтение-запись (в этом случае проблема CacheCoherency становится проблемой). Кроме того, набор элементов в кеше может быть намного меньше, чем набор доступных для использования элементов (это относится к кэшам системы памяти), и в этом случае важны проблемы с распределением и заменой кеша.

Смежные вопросы