【发布时间】:2015-05-13 06:29:54
【问题描述】:
在搜索了与紧密耦合相关的不同论坛后(当一组类高度依赖于彼此时) 示例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 是如何紧密耦合的,因为它基于组合?其次,松耦合和组合是什么关系?
任何帮助将不胜感激。
【问题讨论】:
标签: oop composition loose-coupling tightly-coupled-code