После поиска на разных форумах, связанных с сильной связью (когда группа классов сильно зависит друг от друга) Пример 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 зависит от класса базы данных, поэтому они тесно связаны. И я думаю, что этот класс также является примером 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)
{
}
}
Я искал, что композиция поддерживает слабую связь, и теперь мой вопрос заключается в том, как сильно связан пример 1, так как он основан на композиции? во-вторых, какова связь между слабой связью и композицией?
Любая помощь будет оценена.