IDynamicKeyProviderConcept-Schnittstelle (dbgmodel.h)

Wenn ein Client die Speicherung von Schlüsseln und Werten für ein Objekt übernehmen möchte, kann er diese Konzeptschnittstelle implementieren.

Das Objekt ist ein dynamischer Anbieter von Schlüsseln und möchte alle Schlüsselabfragen aus dem Kerndatenmodell übernehmen. Diese Schnittstelle wird in der Regel als Brücke zu dynamischen Sprachen wie JavaScript verwendet.

Vererbung

IDynamicKeyProviderConcept erbt von IUnknown.

Methoden

Die IDynamicKeyProviderConcept-Schnittstelle verfügt über diese Methoden.

 
IDynamicKeyProviderConcept::AddRef

Die IDynamicKeyProviderConcept::AddRef-Methode erhöht die Verweisanzahl für eine Schnittstelle für ein Objekt.
IDynamicKeyProviderConcept::EnumerateKeys

Die EnumerateKeys-Methode für einen dynamischen Schlüsselanbieter ist effektiv eine Überschreibung der EnumerateKeys-Methode auf IModelObject.
IDynamicKeyProviderConcept::GetKey

Die GetKey-Methode für einen dynamischen Schlüsselanbieter ist weitgehend eine Überschreibung der GetKey-Methode in IModelObject.
IDynamicKeyProviderConcept::QueryInterface

Die IDynamicKeyProviderConcept::QueryInterface-Methode ruft Zeiger auf die unterstützten Schnittstellen für ein Objekt ab.
IDynamicKeyProviderConcept::Release

Die IDynamicKeyProviderConcept::Release-Methode erhöht die Verweisanzahl für eine Schnittstelle für ein Objekt.
IDynamicKeyProviderConcept::SetKey

Die SetKey-Methode für einen dynamischen Schlüsselanbieter ist effektiv eine Überschreibung der SetKey-Methode auf IModelObject.

Hinweise

Konzepte dynamischer Anbieter

Während das Datenmodell selbst normalerweise die Schlüssel- und Konzeptverwaltung für Objekte übernimmt, gibt es Zeiten, in denen dieser Begriff weniger als ideal ist. Insbesondere, wenn ein Client eine Brücke zwischen dem Datenmodell und etwas anderes schaffen möchte, das wirklich dynamisch ist (z. B. JavaScript), kann es wertvoll sein, schlüssel- und konzeptverwaltung aus der Implementierung im Datenmodell zu übernehmen. Da das Kerndatenmodell die einzige Implementierung von IModelObject ist, erfolgt dies stattdessen über eine Kombination aus zwei Konzepten: dem Dynamischen Schlüsselanbieterkonzept und dem Konzept des dynamischen Konzeptanbieters. Es wäre zwar typisch, beides oder keines zu implementieren, es gibt jedoch keine Notwendigkeit dafür.

Wenn beides implementiert ist, muss das Konzept des dynamischen Schlüsselanbieters vor dem Konzept des dynamischen Konzeptanbieters hinzugefügt werden. Beide Konzepte sind besonders. Sie schalten effektiv einen Schalter auf das Objekt um und ändern es von "statisch verwaltet" in "dynamisch verwaltet". Diese Konzepte können nur festgelegt werden, wenn keine Schlüssel/Konzepte vorhanden sind, die vom Datenmodell für das Objekt verwaltet werden. Sobald diese Konzepte einem Objekt hinzugefügt wurden, ist dies unwiderruflich. Es gibt einen zusätzlichen semantischen Unterschied in Bezug auf die Erweiterbarkeit zwischen einem IModelObject , das ein dynamischer Konzeptanbieter ist, und einem Objekt, das nicht ist. Diese Konzepte sollen Es Clients ermöglichen, Brücken zwischen dem Datenmodell und dynamischen Sprachsystemen wie JavaScript zu erstellen. Das Datenmodell verfügt über ein Konzept der Erweiterbarkeit, das sich etwas grundlegend von Systemen wie JavaScript unterscheidet, da es eine Struktur von übergeordneten Modellen anstelle einer linearen Kette wie die JavaScript-Prototypkette gibt. Um eine bessere Beziehung zu solchen Systemen zu ermöglichen, verfügt ein IModelObject , das ein dynamischer Konzeptanbieter ist, über ein einzelnes übergeordnetes Datenmodell. Dieses übergeordnete Einzeldatenmodell ist ein normales IModelObject , das eine beliebige Anzahl übergeordneter Modelle aufweisen kann, wie es für das Datenmodell typisch ist. Alle Anforderungen an den dynamischen Konzeptanbieter zum Hinzufügen oder Entfernen von Übergeordneten werden automatisch an das einzelne übergeordnete Element weitergeleitet. Aus Sicht eines Außens sieht es so aus, als ob der dynamische Konzeptanbieter über eine normale Strukturstilkette übergeordneter Modelle verfügt. Der Implementierer des Konzepts des dynamischen Konzeptanbieters ist das einzige Objekt (außerhalb des Kerndatenmodells), das sich des zwischengeschalteten alleinerziehenden Elternteils bewusst ist. Dieses einzelne übergeordnete Element kann mit dem dynamischen Sprachsystem verknüpft werden, um eine Brücke bereitzustellen (z. B. in die JavaScript-Prototypkette eingefügt).

Anforderungen

Anforderung Wert
Header dbgmodel.h

Weitere Informationen

Debuggerdatenmodell C++-Übersicht