http://www.sufeinet.com/plugin.php?id=keke_group

苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4121|回复: 7

[学习心得] C#依赖倒置原则

[复制链接]
发表于 2018-12-21 10:16:38 | 显示全部楼层 |阅读模式
本帖最后由 惜 于 2018-12-21 10:50 编辑


三 、  依赖倒置原则(DIP)依赖倒置(Dependence Inversion Principle)原则讲的是:要依赖于抽象,不要依赖于具体。

简单的说,依赖倒置原则要求客户端依赖于抽象耦合。原则表述:

抽象不应当依赖于细节;细节应当依赖于抽象;

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


反面例子:
6G)8MYSQA]{5I}JKQ2WAFZT.png
缺点:耦合太紧密,Light 发生变化将影响 ToggleSwitch。

解决办法一:
将 Light 作成 Abstract,然后具体类继承自 Light。


S~AF]JSCLR{RME}Q]N.png

优点:ToggleSwitch 依赖于抽象类 Light,具有更高的稳定性,而 BulbLight 与 TubeLight 继承自 Light,可
以根据"开放-封闭"原则进行扩展。只要 Light 不发生变化,BulbLight 与 TubeLight 的变化就不会波及
ToggleSwitch。


缺点:如果加入一个TV呢,貌似 TV 继承 Light 不太合适。

解决方法二:
S90ZOUV%Y([1DG2(GQYY18M.png
优点:更为通用、更为稳定。
结论:

使用传统过程化程序设计所创建的依赖关系,策略依赖于细节,这是糟糕的,因为策略受到细节改变的影响。依
赖倒置原则使细节和策略都依赖于抽象,抽象的稳定性决定了系统的稳定性。




1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2018-12-21 11:10:12 | 显示全部楼层
真是难得给力的帖子啊。
发表于 2018-12-21 14:12:03 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-21 17:01:38 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-23 21:01:56 | 显示全部楼层
强烈支持楼主ing……
发表于 2018-12-24 14:23:19 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-25 09:40:38 | 显示全部楼层
我只是路过打酱油的。
发表于 2018-12-26 11:20:36 | 显示全部楼层
强烈支持楼主ing……
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-11-18 14:45

© 2014-2021

快速回复 返回顶部 返回列表