《必须知道.NET》3.OO之美
3.2 依赖的哲学#
3.2.1 本质诠释#
“不要调用我们,我们会调用你”
3.2.2 什么是依赖,什么是抽象#
“耦合是不可避免的”
(1)什么是依赖和耦合#
依赖阐释耦合,耦合量化依赖程度。
依赖角度:
- 无依赖,
- 单项依赖,
- 双向依赖
耦合角度:
- 零耦合,没有依赖。
- 具体耦合,一个类持有另一个具体类引用。
- 抽象耦合,发生具体类和抽象类的依赖,最大作用通过对抽象依赖,应用多态,实现灵活扩展性和稳定性。
设计的目标:高内聚,低耦合
。
低耦合:代表了实现最简单的依赖关系,尽可能地减少类与类、模块与模块、层次与层次、系统与系统之间的联系;
(实现单向依赖,实现抽象的耦合,都是实现低耦合的基础条件。)
高内聚:一方面代表了职责的统一管理,一方面又代表了关系的有效隔离;
(2)关于抽象和具体#
抽象 -> 能被具体层复用和覆写 -> 稳定性
具体 -> 体现系统动态性和变动性 -> 变动性
3.2.3 重新回到依赖倒置#
依赖于抽象,对接口编程,对抽象编程!
3.2.4 IOC与DI#
1.控制反转(IOC),代码的控制器交由系统控制而不是在代码内部,消除组件或模块间的直接依赖;
2.依赖注入(DI):
- 接口注入
- 构造器注入
- 属性注入
- .NET平台下,Attribute实现注入。
作者:【唐】三三
出处:https://www.cnblogs.com/tangge/p/8452041.html
版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具