Javaでの組合せと集約
811 ワード
組み合わせと集約には大きな違いがあります.この違いは形式的ではなく、本質的にはAクラスにBクラスの参照bが含まれています.Aクラスのオブジェクトが消滅すると、bという参照が指すオブジェクトも同時に消滅します(参照がなく、ゴミオブジェクトになります).この場合を組み合わせと言います.逆にbが指すオブジェクトには、集約と呼ばれる別の参照があります.
現実の生活の中で:人と手、足は組み合わせの関係で、人が死んだ後に人の手ももう存在しないためです.人と彼のパソコンは集約関係だ.
重合は強い組み合わせの関係といえる
組み合わせと集約の違いとつながり:まず、全体と部分の関係であり、組み合わせの関係はもっと強く、組み合わせの関係にとって、部分を失うと、全体も存在しなくなる.コード実装では、組合せ:他のインスタンスで共有できない全体のコンストラクタで部分をインスタンス化します.全体と部分のライフサイクルは同期されています.一方,集約関係の部分は,コンストラクタでパラメータ伝達の形で初期化できる.データベースのレベルから見ると、結合関係:カスケード削除が必要であり、集約関係は必要ありません.
現実の生活の中で:人と手、足は組み合わせの関係で、人が死んだ後に人の手ももう存在しないためです.人と彼のパソコンは集約関係だ.
重合は強い組み合わせの関係といえる
class Hand{
}
class Computer{
}
:
class Person{
private Hand hand;
public Person(){//
hand = new Hand();
}
}
:
class Person{
private Computer computer;
public setComputer(){//
computer = new Computer();
}
}
組み合わせと集約の違いとつながり:まず、全体と部分の関係であり、組み合わせの関係はもっと強く、組み合わせの関係にとって、部分を失うと、全体も存在しなくなる.コード実装では、組合せ:他のインスタンスで共有できない全体のコンストラクタで部分をインスタンス化します.全体と部分のライフサイクルは同期されています.一方,集約関係の部分は,コンストラクタでパラメータ伝達の形で初期化できる.データベースのレベルから見ると、結合関係:カスケード削除が必要であり、集約関係は必要ありません.