Interface IDynamicConceptProviderConcept (dbgmodel.h)
Si un client souhaite prendre le contrôle du stockage des clés et des valeurs d’un objet, il peut implémenter cette interface de concept.
L’objet est un fournisseur dynamique de clés et souhaite prendre en charge toutes les requêtes clés du modèle de données de base. Cette interface est généralement utilisée comme pont vers des langages dynamiques tels que JavaScript.
Héritage
IDynamicConceptProviderConcept hérite de IUnknown.
Méthodes
L’interface IDynamicConceptProviderConcept a ces méthodes.
IDynamicConceptProviderConcept ::AddRef La méthode IDynamicConceptProviderConcept ::AddRef incrémente le nombre de références pour une interface sur un objet . |
IDynamicConceptProviderConcept ::GetConcept La méthode GetConcept sur un fournisseur de concept dynamique est en fait un remplacement de la méthode GetConcept sur IModelObject. |
IDynamicConceptProviderConcept ::NotifyDestruct La méthode NotifyDestruct sur un fournisseur de concept dynamique est un rappel effectué par le modèle de données de base au début de la destruction de l’objet qui est un fournisseur de concept dynamique. |
IDynamicConceptProviderConcept ::NotifyParent L’appel NotifyParent est utilisé par le modèle de données de base pour informer le fournisseur dynamique du modèle parent unique qui est créé pour permettre le pontage du paradigme « modèles parents multiples ». |
IDynamicConceptProviderConcept ::NotifyParentChange La méthode NotifyParent sur un fournisseur de concept dynamique est un rappel effectué par le modèle de données de base lorsqu’une manipulation statique du modèle parent unique de l’objet est effectuée. |
IDynamicConceptProviderConcept ::QueryInterface La méthode IDynamicConceptProviderConcept ::QueryInterface récupère les pointeurs vers les interfaces prises en charge sur un objet. |
IDynamicConceptProviderConcept ::Release La méthode IDynamicConceptProviderConcept ::Release décrémente le nombre de références pour une interface sur un objet . |
IDynamicConceptProviderConcept ::SetConcept La méthode SetConcept sur un fournisseur de concept dynamique est en fait un remplacement de la méthode SetConcept sur IModelObject. |
Remarques
Concepts du fournisseur dynamique
Bien que le modèle de données lui-même gère normalement la gestion des clés et des concepts pour les objets, il existe des moments où cette notion n’est pas idéale. En particulier, lorsqu’un client souhaite créer un pont entre le modèle de données et quelque chose d’autre réellement dynamique (par exemple, JavaScript), il peut être utile de prendre en charge la gestion des clés et des concepts à partir de l’implémentation dans le modèle de données. Étant donné que le modèle de données de base est la seule et unique implémentation d’IModelObject, cette opération est effectuée via une combinaison de deux concepts : le concept de fournisseur de clés dynamiques et le concept de fournisseur de concept dynamique. Bien qu’il soit courant d’implémenter les deux ou ni l’un ni l’autre, il n’est pas nécessaire de les mettre en œuvre.
Si les deux sont implémentés, le concept de fournisseur de clé dynamique doit être ajouté avant le concept de fournisseur de concept dynamique. Ces deux concepts sont spéciaux. Ils basculent efficacement un commutateur sur l’objet en le remplaçant de « géré statiquement » à « géré dynamiquement ». Ces concepts ne peuvent être définis que s’il n’y a pas de clés/concepts gérés par le modèle de données sur l’objet . Une fois ces concepts ajoutés à un objet, l’action de cette action est irrévocable. Il existe une différence sémantique supplémentaire autour de l’extensibilité entre un IModelObject qui est un fournisseur de concept dynamique et un autre qui ne l’est pas. Ces concepts sont destinés à permettre aux clients de créer des ponts entre le modèle de données et les systèmes de langage dynamique tels que JavaScript. Le modèle de données a un concept d’extensibilité qui diffère quelque peu fondamentalement des systèmes comme JavaScript en ce qu’il existe une arborescence de modèles parents plutôt qu’une chaîne linéaire comme la chaîne prototype JavaScript. Pour permettre une meilleure relation avec ces systèmes, un IModelObject qui est un fournisseur de concept dynamique a un seul parent de modèle de données. Ce parent de modèle de données unique est un IModelObject normal qui peut avoir un nombre arbitraire de modèles parents, comme c’est généralement le cas pour le modèle de données. Toutes les demandes adressées au fournisseur de concept dynamique pour ajouter ou supprimer des parents sont automatiquement redirigées vers le parent unique. Du point de vue d’un étranger, il semble que le fournisseur de concept dynamique ait une chaîne de style d’arborescence normale de modèles parents. L’implémenteur du concept de fournisseur de concept dynamique est le seul objet (en dehors du modèle de données de base) qui connaît le parent unique intermédiaire. Ce parent unique peut être lié au système de langage dynamique pour fournir un pont (par exemple, placé dans la chaîne de prototype JavaScript).
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dbgmodel.h |