IDynamicConceptProviderConcept インターフェイス (dbgmodel.h)
クライアントがオブジェクトのキーと値のストレージを引き継ぐ場合は、この概念インターフェイスを実装できます。
オブジェクトはキーの動的プロバイダーであり、コア データ モデルからすべてのキー クエリを引き継ぐ必要があります。 このインターフェイスは、通常、JavaScript などの動的言語へのブリッジとして使用されます。
継承
IDynamicConceptProviderConcept は IUnknown から継承します。
メソッド
IDynamicConceptProviderConcept インターフェイスには、これらのメソッドがあります。
IDynamicConceptProviderConcept::AddRef IDynamicConceptProviderConcept::AddRef メソッドは、オブジェクト上のインターフェイスの参照カウントをインクリメントします。 |
IDynamicConceptProviderConcept::GetConcept 動的概念プロバイダーの GetConcept メソッドは、実質的には IModelObject の GetConcept メソッドのオーバーライドです。 |
IDynamicConceptProviderConcept::NotifyDestruct 動的概念プロバイダーの NotifyDestruct メソッドは、動的概念プロバイダーである オブジェクトの破棄の開始時にコア データ モデルによって行われたコールバックです。 |
IDynamicConceptProviderConcept::NotifyParent NotifyParent 呼び出しは、コア データ モデルによって使用され、"複数の親モデル" パラダイムをブリッジできるように作成された単一の親モデルを動的プロバイダーに通知します。 |
IDynamicConceptProviderConcept::NotifyParentChange 動的概念プロバイダーの NotifyParent メソッドは、オブジェクトの単一親モデルの静的な操作が行われたときにコア データ モデルによって行われるコールバックです。 |
IDynamicConceptProviderConcept::QueryInterface IDynamicConceptProviderConcept::QueryInterface メソッドは、オブジェクトでサポートされているインターフェイスへのポインターを取得します。 |
IDynamicConceptProviderConcept::Release IDynamicConceptProviderConcept::Release メソッドは、オブジェクト上のインターフェイスの参照カウントをデクリメントします。 |
IDynamicConceptProviderConcept::SetConcept 動的概念プロバイダーの SetConcept メソッドは、実質的には IModelObject の SetConcept メソッドのオーバーライドです。 |
注釈
動的プロバイダーの概念
データ モデル自体は通常、オブジェクトのキーと概念の管理を処理しますが、その概念が理想的ではない場合があります。 特に、クライアントがデータ モデルと真に動的な何か (JavaScript など) との間にブリッジを作成したい場合は、データ モデルの実装からキーと概念の管理を引き継ぐ価値があります。 コア データ モデルは IModelObject の唯一の実装であるため、これは代わりに、動的キー プロバイダーの概念と動的概念プロバイダーの概念という 2 つの概念を組み合わせて行います。 両方またはどちらも実装するのが一般的ですが、そのような要件はありません。
両方を実装する場合は、動的な概念プロバイダーの概念の前に動的キー プロバイダーの概念を追加する必要があります。 これらの概念はどちらも特別です。 オブジェクトを "静的に管理" から "動的に管理" に変更するスイッチを効果的に反転します。 これらの概念は、オブジェクトのデータ モデルによって管理されるキー/概念がない場合にのみ設定できます。 これらの概念がオブジェクトに追加されると、これを行う操作は取り消し不可能になります。 動的概念プロバイダーである IModelObject とそうでない IModelObject の間には、拡張に関するセマンティックの違いがあります。 これらの概念は、クライアントがデータ モデルと JavaScript などの動的言語システムとの間にブリッジを作成することを目的としています。 データ モデルには、JavaScript プロトタイプ チェーンのような線形チェーンではなく親モデルのツリーがあるという点で、JavaScript のようなシステムとは基本的に異なる拡張性の概念があります。 このようなシステムとの関係を改善するために、動的概念プロバイダーである IModelObject には、単一のデータ モデルの親があります。 その単一データ モデルの親は通常の IModelObject であり、 データ モデルの一般的な親モデルの数は任意です。 親を追加または削除する動的概念プロバイダーへの要求は、自動的に 1 つの親にリダイレクトされます。 部外者の観点からは、動的概念プロバイダーには親モデルの通常のツリー スタイル チェーンがあるかのように見えます。 動的概念プロバイダーの概念の実装者は、中間の単一の親を認識する唯一のオブジェクト (コア データ モデルの外部) です。 その単一の親を動的言語システムにリンクしてブリッジを提供できます (例: JavaScript プロトタイプ チェーンに配置)。
要件
要件 | 値 |
---|---|
Header | dbgmodel.h |