ビジネス・コンポーネント・フレームワークは、oracle.jbo.ApplicationModule
、oracle.jbo.ViewObject
およびoracle.jbo.Row
などの、oracle.jbo
パッケージ内のインタフェースを中心に編成されています。インタフェースを実装するクラスのかわりに、これらのインタフェースに則してクライアントをコーディングすることによって、コードが層に依存しないようにできます。たとえば、ビジネス・コンポーネントをEJBとしてデプロイすることを選択すると、ビジネス・コンポーネントのローカルへのデプロイ時にテストに使用したのと同じクライアント・コードを使用できます。これは、クライアント層で常にインタフェースにアクセスできるためです。ビジネス・コンポーネント・フレームワークによって、層と層の間の通信に関する処理がすべて行われます。
oracle.jbo
のインタフェースは、oracle.jbo.server
パッケージのクラスによって実装されています。たとえば、oracle.jbo.ApplicationModule
はoracle.jbo.server.ApplicationModuleImpl
によって実装されています。リモートにデプロイする場合は、これらの実装クラスはクライアント層で使用できないため、実装クラスのメソッドを直接コールしないでください。クラスをコールすると、アプリケーションをリモートにデプロイできなくなります。かわりに、インタフェースのメソッドをコールしてください。
同様に、独自のアプリケーション・モジュールおよびビュー・リンクを作成するときは、それらの実装クラスのメソッドをコールしないでください。かわりに、メソッドをエクスポートし、そのメソッドを含むカスタム・インタフェースを作成します。これらのインタフェースは、oracle.jbo.ApplicationModule
またはoracle.jbo.ViewObject
を拡張し、クライアント層で常にアクセスできます。ビジネス・コンポーネントをダウンキャストする場合は、実装クラスではなく必ずインタフェースにダウンキャストしてください。
リモートにデプロイされたビジネス・コンポーネントでメソッドをコールした場合の内部での処理の詳細は、「ビジネス・コンポーネントおよびワイヤ・プロトコルについて」を参照してください。コードを記述するときには、この情報は必要ありません。ビジネス・コンポーネントにより、ワイヤ・プロトコルが自動的に処理されます。
注意: 原則として、他の
*Impl
クラス内での*Impl
クラスへの直接アクセスは認められていますが、アプリケーション・モジュールにアクセスしているクライアント・コードでの*Impl
クラスへのアクセスまたはキャストは行わないでください。