Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Если клиент хочет взять на себя хранилище ключей и значений для объекта, он может реализовать этот интерфейс концепции.
Объект является динамическим поставщиком ключей и хочет взять на себя все ключевые запросы из основной модели данных. Этот интерфейс обычно используется в качестве моста к динамическим языкам, таким как JavaScript.
Наследство
IDynamicConceptProviderConcept наследует от IUnknown.
Методика
Интерфейс IDynamicConceptProviderConcept имеет эти методы.
IDynamicConceptProviderConcept::AddRef Метод IDynamicConceptProviderConcept::AddRef увеличивает число ссылок для интерфейса объекта. |
IDynamicConceptProviderConcept::GetConcept Метод GetConcept для динамического поставщика концепций является фактически переопределением метода GetConcept в IModelObject. |
IDynamicConceptProviderConcept::NotifyDestruct Метод NotifyDestruct для динамического поставщика концепций — это обратный вызов, сделанный основной моделью данных в начале уничтожения объекта, который является динамическим поставщиком концепции. |
IDynamicConceptProviderConcept::NotifyParent Вызов NotifyParent используется основной моделью данных для информирования динамического поставщика одной родительской модели, которая создается для преодоления парадигмы "нескольких родительских моделей". |
IDynamicConceptProviderConcept::NotifyParentChange Метод NotifyParent в динамическом поставщике концепций является обратным вызовом, сделанным основной моделью данных при выполнении статической манипуляции с одной родительской моделью объекта. |
IDynamicConceptProviderConcept::QueryInterface Метод IDynamicConceptProviderConcept::QueryInterface извлекает указатели на поддерживаемые интерфейсы объекта. |
IDynamicConceptProviderConcept::Release Метод IDynamicConceptProviderConcept::Release уменьшает количество ссылок для интерфейса объекта. |
IDynamicConceptProviderConcept::SetConcept Метод SetConcept в динамическом поставщике концепций является фактически переопределением метода SetConcept в IModelObject. |
Замечания
концепции динамического поставщика
Хотя сама модель данных обычно обрабатывает управление ключами и концепциями для объектов, существует время, когда это понятие меньше идеала. В частности, когда клиент хочет создать мост между моделью данных и что-то другое, которое действительно динамически (например, JavaScript), может быть полезно взять на себя управление ключами и концепциями из реализации в модели данных. Поскольку базовая модель данных является одной и единственной реализацией IModelObject, это делается с помощью сочетания двух понятий: концепции поставщика динамических ключей и концепции динамического поставщика концепций. Хотя это было бы типично для реализации обоих или ни другого, нет никаких требований для такого.
Если оба варианта реализованы, необходимо добавить концепцию поставщика динамических ключей перед концепцией динамического поставщика концепций. Оба этих понятия являются особыми. Они эффективно переворачивают переключатель для объекта, изменяя его с "статически управляемым" на "динамически управляемый". Эти понятия можно задать только в том случае, если в объекте нет ключей и концепций, управляемых моделью данных. После добавления этих понятий в объект действие этого неизменяемо. Существует дополнительная семантическая разница в расширяемости между IModelObject, которая является динамическим поставщиком концепций и не является. Эти понятия предназначены для того, чтобы клиенты могли создавать мосты между моделью данных и динамическими языковыми системами, такими как JavaScript. Модель данных имеет концепцию расширяемости, которая несколько отличается от систем, таких как JavaScript, в том, что существует дерево родительских моделей, а не линейная цепочка, как цепочка прототипов JavaScript. Чтобы обеспечить лучшую связь с такими системами, IModelObject который является динамическим поставщиком концепции, имеет один родительский элемент модели данных. Этот родительский элемент модели данных является обычным IModelObject который может иметь произвольное количество родительских моделей, как обычно для модели данных. Все запросы к поставщику динамической концепции для добавления или удаления родителей автоматически перенаправляются в один родительский элемент. С точки зрения аутсайдера, он выглядит так, как будто динамический поставщик концепций имеет обычную цепочку стилей дерева родительских моделей. Реализация концепции динамического поставщика концепции является единственным объектом (за пределами основной модели данных), который учитывает промежуточный родительский элемент. Один родительский элемент может быть связан с динамической языковой системой, чтобы обеспечить мост (например, помещенный в цепочку прототипов JavaScript).
Требования
Требование | Ценность |
---|---|
заголовка | dbgmodel.h |
См. также
Обзор модели данных отладчика C++