В своей работе я использую Bold для Delphi , которая может управлять неограниченным сложными структурами кэшированных значений в зависимости друг от друга. Обычно каждая переменная содержит лишь небольшую часть проблемы. В этой структуре это называется производными атрибутами. Получено потому, что значение не сохраняется в базе данных. Оно зависит только от других производных атрибутов или постоянных атрибутов в базе данных.
Код такого атрибута написан в Delphi как процедура или в OCL (Object Constraint Language) в модели. Если вы пишете это как Delphi-код, вы должны подписаться на зависимые переменные. Таким образом, если атрибут C зависит от A и B, то всякий раз, когда A или B изменяет код, код для повторного вызова C вызывается автоматически, когда читается C. Таким образом, в первый раз C читается A и B также читается (возможно, из базы данных). Пока A и B не изменены, вы можете читать C и получить очень высокую производительность. Для сложных вычислений это может сэкономить довольно много процессорного времени.
Недостатком и плохой новостью является то, что Bold больше не поддерживается официально, и вы также не можете его купить. Я полагаю, вы можете получить, если вы спросите достаточно людей, но я не знаю, где вы можете скачать его. Примерно в 2005-2006 годах его можно было бесплатно скачать с Borland, но больше нет.
Он не готов к D2009, так как кто-то должен перенести его на Unicode.
Другой вариант - ECO с dot.net из Способные объекты . ECO - это плагин в Visual Studio. Это поддерживаемая фреймворк, которая имеет ту же идею и автора, что и Bold для Delphi. Многие вещи также улучшены, например, привязка данных используется для GUI-компонентов. И Bold, и ECO используют модель в качестве центральной точки с классами, атрибутами и ссылками. Они могут быть сохранены в базе данных или в xml-файле. В бесплатной версии ECO модель может иметь до 12 классов, но, насколько я помню, других ограничений нет.
Bold и ECO содержат намного больше, чем производные атрибуты, что делает вас более продуктивным и позволяет вам думать о проблеме, а не о технических деталях базы данных или, в вашем случае, о том, как кэшировать значения. Пожалуйста, задавайте больше вопросов об этих фреймворках!
Edit:
На самом деле есть ссылка для загрузки для зарегистрированных пользователей Embarcadero для Bold для Delphi для D7, довольно старая ... Я знаю, что были обновления для D2005, объявление D2006.