本文仅作学习笔记与交流,不作任何商业用途,作者能力有限,如有不足还请斧正
本系列作为七大原则和设计模式的进阶知识,看不懂没关系请看专栏:http://t.csdnimg.cn/mIitr,查漏补缺
1.依赖倒置原则 (DIP)
这个原则的核心思想是:高层模块不应该依赖于低层模块,二者都应该依赖于抽象,具体来说,依赖倒置原则建议我们通过依赖抽象(如接口或抽象类)而不是具体实现来降低模块之间的耦合度
什么叫依赖?
依赖可以理解为耦合,就是两个类之间有互相套用的关系
举个栗子
// 定义接口
public interface IDataAccess
{
void SaveData(string data);
}
// 低层模块实现接口
public class DatabaseAccess : IDataAccess
{
public void SaveData(string data)
{
// 保存数据到数据库的实现
Console.WriteLine("Data saved to database.");
}
}
// 高层模块依赖于抽象接口
public class DataSaver
{
private readonly IDataAccess _dataAccess;
// 通过构造函数注入实现依赖倒置
public DataSaver(IDataAccess dataAccess)
{
_dataAccess = dataAccess;
}
public void Save(string data)
{
_dataAccess.SaveData(data);
}
}
// 使用示例
class Program
{
static void Main()
{
IDataAccess dataAccess = new DatabaseAccess();
DataSaver dataSaver = new DataSaver(dataAccess);
dataSaver.Save("Sample Data");
}
}
发现了没,高模块DataSaver依托于抽象的IDataAccess,而不是之前的DatabaseAccess