このフレームワークでデータ制御の抽象化が果たしている役割は何ですか?
これは、ビジネス サービス(実際のモデル レイヤー)DataControl
にアクセスするための追加の抽象化レイヤーです。
ADF では、ビジネス サービスはさまざまなタイプをサポートします。
- アプリケーション モジュール ベース (リレーショナル データベースへのアクセス)
- ウェブサービス
- URL 経由でデータにアクセスするための URL サービス
- Java EE EJB を介してビジネス データにアクセスするための EJB データ サービス
これらの異なるデータ アクセス タイプは、データ コントロール レイヤーによってカプセル化されます。データ コントロール レイヤは、バインディング レイヤで使用されるAttributes
、Collections
およびを使用した共通のインターフェイスを提供します。Operations
バインディング層では、データのクエリおよび更新時に RDBMS、Web サービス、またはその他のものがアクセスされるかどうかは問題ではありません。
ADF を使い始めたときに難しかったことの 1 つは、RDBMS バックエンドを使用して単純なアプリケーションを実装するときに、この追加レイヤーからの実際のメリットがまったく見られなかったことです。アプリケーションモジュールでデータモデルを定義し、それらの構成ファイルさえありませんでした。Application Module
ただし、これは、ベースのビジネス サービスを使用する場合にのみ当てはまります。この場合、データ コントロールのすべてのメタ データがApplication Modules
データ モデルから取得されます。Web サービスなど、他の種類のビジネス サービスを使用すると、真のメリットが得られます。次に、これらのデータ コントロールを構成するために作成された追加のメタ データ .xml ファイルもあります。
バインディング層の役割とデータ制御層との相互作用
バインディング レイヤーは、データ コントロールを拡張して、データを UI で使用できるようにします。典型的なバインディングはイテレータ (=> バインディング層) で、コレクション (=> データ コントロール) 内の現在のレコードを追跡します。がなければ、iterator
「現在のレコード」という概念はなく、レコード間を移動することはできません。
もう 1 つの側面は、JDeveloper の設計時機能です。データ コントロールは、データ コントロールを UI ページにドラッグ アンド ドロップするときに、必要なバインディングを自動的に作成するために必要なメタ データを提供します。
@Shay Shmeltzer によって言及された録音は、データ コントロールとバインディング レイヤーについて非常に優れた洞察を提供するため、レビューする価値があります。