密結合に関連するさまざまなフォーラムを検索した後 (クラスのグループが互いに大きく依存している場合) 例 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 がどのように密結合されているかです。第二に、疎結合と構成の関係は何ですか?
どんな助けでも大歓迎です。