[解決済み] JavaにおけるAggregationとCompositionの実装の違いについて
2022-10-17 16:06:25
質問
AggregationとCompositionの概念的な違いは知っています。どなたか、Javaにおけるこれらの実装の違いを例とともに教えていただけませんか。
どのように解決するのですか?
構成
final class Car {
private final Engine engine;
Car(EngineSpecs specs) {
engine = new Engine(specs);
}
void move() {
engine.work();
}
}
集計方法
final class Car {
private Engine engine;
void setEngine(Engine engine) {
this.engine = engine;
}
void move() {
if (engine != null)
engine.work();
}
}
コンポジションの場合、EngineはCarによって完全にカプセル化されます。外部がエンジンへの参照を取得する方法はありません。EngineはCarとともに生き、Carとともに死にます。アグリゲーションでは、CarもEngineを通じて機能を実行しますが、Engineは常にCarの内部部品とは限りません。エンジンは交換されるかもしれないし、完全に取り外されるかもしれない。それだけでなく、外の世界はまだエンジンへの参照を持つことができ、それが車の中にあるかどうかに関係なくそれをいじることができます。
関連
-
[解決済み] Spring Data JPAにおけるCrudRepositoryとJpaRepositoryのインターフェースの違いは何ですか?
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] JavaにおけるHashMapとHashtableの違いは何ですか?
-
[解決済み] Javaにおけるpublic、protected、package-private、privateの違いは何ですか?
-
[解決済み] JavaBeanとは何ですか?
-
[解決済み] Java内部クラスと静的ネストされたクラス
-
[解決済み] wait()とsleep()の違いについて
-
[解決済み] Javaクラスにおけるcanonical name、simple name、class nameの違いは何ですか?
-
[解決済み】HashMap、LinkedHashMap、TreeMapの違いについて
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
mvn' は、内部または外部のコマンド、操作可能なプログラムまたはバッチファイルとして認識されません。
-
Eclipse の問題 アクセス制限。タイプ 'jfxrt' はAPI解決されていません。
-
java -jarコマンドでパッケージを実行すると、無効または破損したjarfile xxxx.jarが表示される。
-
java マイクロソフト払い戻し予期せぬサーバーからのファイルの終了
-
Junitのユニットテストはjava.lang.Testを報告します。
-
List list = new ArrayList(); Error: ArrayList は型に解決できません。
-
JNIエンカウンターエラー:構造体またはユニオンではない何かでメンバー 'FindClass' のリクエスト
-
代入の左辺は変数でなければならない 解答
-
Spring Bootは、Tomcatの組み込みのmaxPostSizeの値を設定します。
-
switch case文のcaseの後の列挙定数は列挙型なし