Java でコンポジションを使用する方法と例

Java Dekonpojishonwo Shi Yongsuru Fang Fato Li



合成により、プログラマは既存のクラスを新しいクラスに統合して再利用できます。複数のクラスからコードを複製する代わりに、コードの再利用性を高めます。さらに、この構成により、受け取ったクラスの要件に基づいてオブジェクトを組み合わせる際の柔軟性が得られます。また、モジュール性が促進され、コードが変更に適応しやすくなります。

この記事では、例を使用して Java での合成について詳しく説明します。







Java でコンポジションを使用する方法と例

コンポジションはクラス間の疎結合を促進します。構成されたオブジェクトは、クライアント クラスを特定の実装から分離するインターフェイス、抽象クラス、またはスーパー クラスを通じてアクセスされます。これにより、コードの保守性が向上し、テストとリファクタリングが容易になります。



Java での構成をより深く理解するには、以下の例を参照してください。



例: Java でのコンポジションコンセプトの実装





合成の概念を実装するには、次に示すように、関数を継承する 2 つ以上のクラスとメソッドを作成して、時間とコードの複雑さを軽減することから始めます。

クラスエンジン {
プライベート文字列 タイプ ;
パブリックエンジン ( タイプ ) {
this.type = タイプ ;
}
パブリックボイドスタート ( ) {
System.out.println ( タイプ + 「エンジン始動しました」 ) ;
}
パブリックボイドストップ ( ) {
System.out.println ( タイプ + 「エンジンが止まってしまった」 ) ;
}
}
クラスバイク {
プライベート文字列バージョン。
プライベートエンジンエンジニア;
公共自転車 ( 文字列バージョン、エンジン エンジン )
{
this.version = バージョン;
this.engn = エンジン;
}
public void startBike ( ) {
System.out.println ( 「自転車を始動する」 + バージョン ) ;
エンジニアリングスタート ( ) ;
}
パブリックボイドストップバイク ( ) {
System.out.println ( 「自転車を止めて」 + バージョン ) ;
エンジンストップ ( ) ;
}
}



上記のコードの説明:

  • まず、「」という名前のクラスを作成します。 エンジン ” という名前の String 型パラメータをもたらすデフォルトのコンストラクターを呼び出します。 タイプ ”。
  • 次に、「」という名前の 2 つの関数を宣言します。 始める() ' と ' ストップ() 」というダミー メッセージがコンソールに表示されます。
  • 次に、「」という名前の新しいクラスを作成します。 自転車 ” と、上記のクラスの変数とオブジェクトをパラメータとして含むデフォルトのコンストラクターが利用されます。
  • また、これらのパラメータを「Bike」​​クラス内に作成した変数やオブジェクトの値として設定します。これにより、クラス内で値にアクセスできるようになります。
  • その後、「」という名前の 2 つの関数が作成されます。 startBike() ' と ' ストップバイク() 」というダミーメッセージが出力されます。
  • 最後に、「」で作成した関数を呼び出します。 エンジン ” という名前のオブジェクトを使用してクラスを作成します。 エンジニア ”。

ここで、「」を挿入します。 主要() 上記のコードを機能させるためのメソッド:

パブリッククラスの構成 {
パブリック静的ボイドメイン ( [ 引数 ) {
エンジン 誰も = 新しいエンジン ( 「YBR」 ) ;
バイクバイク = 新しいバイク ( 「重いバイク」 、 誰も ) ;
bik.startBike ( ) ;
bik.stopBike ( ) ;
}
}

上記のコードの説明:

  • まず、「」の対象物です。 エンジン ” クラスは” という名前で作成されます 誰も ” と、ランダムな String 型の値がそのコンストラクターに渡されます。
  • 次に、「」のオブジェクトを作成します。 自転車 「」という名前のクラス 特に ”。その後、String 型の値を「Engine」クラス オブジェクトの引数としてコンストラクターに渡します。
  • 最後に、「」に電話します。 startBike() ' と ' ストップバイク() ” を使用した機能 特に ' 物体。

上記のコード スニペットを実行すると、次のようになります。

上のスナップショットは、構成概念を使用してデータが取得されたことを示しています。

コンポジションのリアルタイム使用法

合成の概念が重要な役割を果たすリアルタイム アプリケーションは数多くあります。これらの幾つか

使い方は以下のように書かれています。

  • の ' GUI開発 」のように、このコンポジションは複雑な UI コンポーネントを構築するためによく使用されます。たとえば、Window クラスは、Button、Label、Text Field などのオブジェクトを構成できます。
  • 依存関係の注入 Spring などのフレームワークは、オブジェクトに依存関係を注入するために合成を多用します。
  • コンポジションは「」で広く使用されています。 アプリケーション設計 」を使用して、顧客、トランザクション、残高などのオブジェクト間の複雑な関係をモデル化し、関連する機能を備えた銀行口座を表現します。
  • 構成は「」の基本です コンポーネントベースの開発 」では、再利用可能なコンポーネントを構成してより大きなシステムを作成します。
  • 合成は、より単純なデータ構造を組み合わせてより複雑なデータ構造を形成するために、さまざまなデータ構造で使用されます。

結論

合成は、単純なオブジェクトを結合して複雑なオブジェクトを作成するために利用されます。これにより、プログラマは「」に基づいてクラス間の関係を確立できます。 があります 」関係。最初のクラスには 2 番目のクラスのインスタンスが含まれます。合成の概念を使用すると、プログラマは特定の動作を持つオブジェクトを合成することで、モジュール式で再利用可能な柔軟な設計を実現できます。