歴史については定かではありませんが、この意味での「バインディング」という用語は、「データ バインディング」という用語から派生したものではないかと推測されます。「データバインディング」は確かにアクションです。たとえば、フォーム内のフィールドにデータベースからのデータが入力され、自動的に更新される場合など、実際のデータ、AKA モデルからの値を UI コントロールに入力します。 . バインディングの主な違いは、一方向と双方向にあると思います。双方向のデータ バインディングでは、モデルからビューにデータを同期するだけでなく、ユーザー入力もモデルに同期されます。
「bind」は動詞であり、「data-binding」の動詞形式は「bind data」または「perform data-binding」です。2 番目の例は、「データ バインディング」も名詞であり、「データ/モデル プロパティを UI/ビュー プロパティにバインドする行為」として定義できることを示しています。「バインディング」自体の名詞バージョンに関しては、通常、2 つのプロパティ間の個別のバインディングを指すという点で正しいと思います。これを視覚的に示すために、ドットが互いにバインドされた 2 つのプロパティを表しているとします。
• ----- •</p>
ここでの「バインディング」は、それらの間の線です。
より具体的に言うと、一方向バインディングは 1 つの矢印で表すことができます。
• ----> •</p>
そして、2 つの矢印による双方向バインディング:
• <---> •</p>
「ライブ バインディング」は、オブザーバー パターンが使用されていることを示すために使用される用語です。私の推測では、"ライブ バインディング" を区別したいという要望は、ページが最初に読み込まれるときに、HTTP 要求ごとに 1 回だけデータ バインディングが発生するフレームワークを以前に使用したことがある Web 開発者から来た可能性があります。Javascript を多用する Web アプリが標準になりつつある現在 (部分的には ajax のおかげ)、MVC の元の定義で提案されているように Observer パターンを使用しない理由はありません。そのため、「ライブ バインディング」はおそらく RIA に関して不要な用語です。またはネイティブ デスクトップまたはモバイル アプリ。
余談ですが、Trygve Reenskaug の MVC の最初のビジョン (彼が考案したもの) は、基本的にエンド ユーザーのメンタル モデルをシステムに反映することであり、その結果、「モデル」は、ユーザーがほとんど直接操作しているもの (または、少なくともそのように感じるもの) になります。ユーザー)。したがって、オブザーバー パターン (または少なくともページをリロードせずにモデルとビューの同期を維持するメカニズム) が不可欠であり、サーバー側にほとんどのコードを持つ Web 開発フレームワークは、当初考えられていた MVC ではありませんが、むしろ、コード編成に関して同じ一般的な考え方に従うバリアントです。主にクライアント側アプリ向けの最新の Javascript フレームワークにより、Web 開発で真の MVC が可能になります。
あなたの質問に戻って、バインディングは必ずしもモデル プロパティとビュー プロパティの間にあるとは限らないと言うときも正しいと思います。2 つのモデル プロパティ (通常は異なるモデル) の間、または 2 つのビュー プロパティの間である可能性があります。しかし、「バインディング」はプログラミングに関する名詞にすぎないというあなたの主張には同意しません。明らかに英語では動詞「バインド」の名詞形、つまり「バインディングの行為」であり、それは有効だと思います。プログラミングでの使用も。本質的に私が言っていることは、それには二重の意味があるということですが、あなたが提案した定義が最も一般的だと思います。正式な定義での私の試みは次のとおりです。
バインディング。
- 2 つのプロパティ (通常は 2 つの異なるオブジェクト) 間の接続で、プロパティを互いに同期させます。つまり、同じ値を持ちます。同期は、単方向または双方向のいずれかです。
- そのような接続を開始する行為。