Поделиться через


Интерфейс IDynamicConceptProviderConcept (dbgmodel.h)

Если клиент хочет взять на себя хранение ключей и значений для объекта, он может реализовать этот интерфейс концепции.

Объект является динамическим поставщиком ключей и хочет взять на себя все ключевые запросы из основной модели данных. Этот интерфейс обычно используется в качестве моста к динамическим языкам, таким как 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++