随笔 - 705  文章 - 0  评论 - 1103  阅读 - 138万 

1. 抽象不应该依赖细节,细节应该依赖于抽象(接口,抽象类)。

2. 针对接口编程,不要对实现编程。

3. 高层模块不依赖底层模块,两者都应该依赖抽象。

image

4. 依赖倒置含义在于,相互之间不依赖,除了约定好的接口实现,大家都可以灵活自如,子类实现接口进行“策略工厂”实现,高层模块通过使用接口来实现“开闭依赖倒置”。

5.依赖倒置其实可以说是面向对象设计的标志,用何种方式实现不重要,重要在于如何考虑针对抽象编程,而不是针对细节编程,即程序中所有的依赖关系都是终止于抽象类或者接口,那就是面向对象的设计,反之就是面向过程化的设计。

 

里氏代换原则

image

1.意思就是从需求行来说,通过父类(接口,抽象类)继承,子类实现父类中所有的非 Private 接口,来编程和定义交互,如果子类的需求有任何一个无法不符合父类的所有Public成员,则不能继承这个父类,因为子类将无法替换掉父类,当然现在的编程工具都是强制实现父类的。

2. 只有当子类可以替换掉父类,软件单位的功能不受限制时,父类才能真正被复用,而子类也能够在父类的基础上增加新的行为。

3.由于子类型的可替换性,才使得使用父类类型的模块在无需修改的情况下就可以扩展。

posted on   冯瑞涛  阅读(1143)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示