オブジェクト間の 4 種類の関係

ヒント:記事作成後に目次を自動生成することもできますが、生成方法については右のヘルプを参照してください。


序文

オブジェクト間の関係: 依存関係、関連付け、集約、組み合わせ


1.依存性

依存関係はクラス間の接続です。依存関係表現の定義一个类依赖于另一个类使用関係一般に、依存関係は Java 言語に局域变量方法的形参、またはとして反映されます。对静态方法的调用

自己想  局部变量 --- 形参 --- 调用另一个类的静态方法

2. 協会

アソシエーション関係とは、クラス間の接続であり、 を作成します一个类知道另一个类的属性和方法関係を持ちましょう。アソシエーションは双方向または単方向にすることができます。Java 言語では、関連付け関係は通常、成员变量を使用して実装されます。

    所谓关联,某个对象长期持有**另一个对象的引用**,
    而且这两者之前的关联是相互的,
    关联的两个对象彼此之间没有任何的强制性约束,
    只要两者同意,可以随时解除关联关系,
    而且它们在生命周期上没有任何约定,
    被关联的对象是共享,它还可以被其他对象关联。
成员变量  

3. 集計

集約関係は、関連付け関係の一種です强的关联关系集合体とは、全体と個別の関係です例えば、自動車というカテゴリーと、エンジンやタイヤなどの部品カテゴリーとの関係は、全体と個の関係です。関連関係と同様に、集約関係もインスタンス変数を通じて実装されます。ただし、関連付け関係に含まれる 2 つのクラスは同じレベルにありますが、集約関係では 2 つのクラスは等しくないレベルにあり、1 つは全体を表し、もう 1 つは部分を表します


// 母亲
class Mother {
    
    
    // 母亲可以有自己孩子, 但是不确定什么时候生
    private Children myChildren;
}
// 孩子
class Children {
    
    
 
}

4. 構成

結合関係は、関連関係の一種であり、集約関係よりも強い関係である。通常の集約関係では全体を表すオブジェクトが、そのオブジェクトの一部のライフサイクルを表す責任を負う必要があり、組み合わせ関係を共有することはできません全体を表すオブジェクトは、部分オブジェクトを存続させ、場合によっては部分を担当するオブジェクトを消滅させる責任を負う必要があります。全体を表すオブジェクトは、部分を表すオブジェクトを、このオブジェクトのライフサイクルを担当する別のオブジェクトに渡すことができます。言い換えれば、パーツを表すオブジェクトは、各瞬間に 1 つのオブジェクトとのみ組み合わせることができ、後者がライフ サイクルに対して独占的に責任を負います。部品には全体と同じライフサイクルがあります

 * 组合关系就是整体与部分的关系,部分属于整体,整体不存在,则部分一定不存在
 * 然后部分不存在整体依然可以生存
 * 部分存在于整体创建之后,部分销毁于整体销毁之前。
public class CompositionTest {
    
    
    /**
     * 菜刀
     */
    static class Kinfe {
    
    
        public static void cutting(String name) {
    
    
            System.out.println("切" + name);
        }
    }
    /**
     *  厨师
     */
    class Chef {
    
    
        Kinfe kinfe = new Kinfe();
        public void cutting(String vegetables) {
    
    
            kinfe.cutting(vegetables);
        }
    }
    public static void main(String[] args) {
    
    
        CompositionTest dependencyTest = new CompositionTest();
        Chef chef = dependencyTest.new Chef();
        chef.cutting("carrot");
    }
}

要約する

依存性と関連性の違い: 依存性は使用関係であり、関連性は所有権関係です。

集合と結合の違い: 集合とは、全体がなくても個が存在できることを意味します;結合は、個と全体が分離できず、個が全体なしでは単独で存在できないことを意味します。

依存、関連、集約、結合の違い: 依存、関連: クラス間の関係が同じレベルにある; 集約、結合: クラス間の関係が全体と部分として表現されます。

参考
https://blog.csdn.net/myb19950405/article/details/126709643

勉強ノート - 勉強専用

おすすめ

転載: blog.csdn.net/weixin_44625361/article/details/127581835