2

密結合に関連するさまざまなフォーラムを検索した後 (クラスのグループが互いに大きく依存している場合) 例 1

 class CustomerRepository
        {
            private readonly Database database;

            public CustomerRepository(Database database)
            {
                this.database = database;
            }

            public void Add(string CustomerName)
            {
                database.AddRow("Customer", CustomerName);
            }
        }
        class Database
        {
            public void AddRow(string Table, string Value)
            {
            }
        }

上記のクラス CustomerRepository は Database クラスに依存しているため、密結合されています。このクラスも Compostion の例であると思います。次に、疎結合を検索したので、上記のクラスを変更して密結合の依存関係を削除しました。例2

   class CustomerRepository
        {
            private readonly IDatabase database;

            public CustomerRepository(IDatabase database)
            {
                this.database = database;
            }

            public void Add(string CustomerName)
            {
                database.AddRow("Customer", CustomerName);
            }
        }

        interface IDatabase
        {
            void AddRow(string Table, string Value);
        }

        class Database : IDatabase
        {
            public void AddRow(string Table, string Value)
            {
            }
        }

コンポジションが疎結合をサポートしていることを検索しましたが、私の質問は、コンポジションに基づいているため、 example1 がどのように密結合されているかです。第二に、疎結合と構成の関係は何ですか?

どんな助けでも大歓迎です。

4

2 に答える 2

2
于 2015-05-13T06:58:49.190 に答える