1. 抽象不应该依赖细节,细节应该依赖于抽象(接口,抽象类)。
2. 针对接口编程,不要对实现编程。
3. 高层模块不依赖底层模块,两者都应该依赖抽象。
4. 依赖倒置含义在于,相互之间不依赖,除了约定好的接口实现,大家都可以灵活自如,子类实现接口进行“策略工厂”实现,高层模块通过使用接口来实现“开闭依赖倒置”。
5.依赖倒置其实可以说是面向对象设计的标志,用何种方式实现不重要,重要在于如何考虑针对抽象编程,而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就是面向过程化的设计。
里氏代换原则
1.意思就是从需求行来说,通过父类(接口,抽象类)继承,子类实现父类中所有的非 Private 接口,来编程和定义交互,如果子类的需求有任何一个无法不符合父类的所有Public成员,则不能继承这个父类,因为子类将无法替换掉父类,当然现在的编程工具都是强制实现父类的。
2. 只有当子类可以替换掉父类,软件单位的功能不受限制时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。
3.由于子类型的可替换性,才使得使用父类类型的模块在无需修改的情况下就可以扩展。
冯瑞涛
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?