设计模式六大原则----------依赖倒置原则

设计模式总览



依赖倒置原则(Dependence Inversion Principle)

该原则规定:

①高层模块不依赖低层模块。两者都应该依赖抽象接口

②抽象不能依赖具体。而具体应该依赖抽象接口


此原则的目的是为了实现解耦。将依赖关系建立在高层,而低层用来做具体实现。因为高层相对稳定,不会经常变动,而具体实现则会经常变动。


其实该原则,在现实生活中也经常用到。以电脑cpu来说,主板厂商定好cpu引脚接口,然后不同的cpu厂商按照此接口来生成cpu。这样对于用户来说,只需要买回cpu和主板,然后将cpu插入主板就行了,完全不用再去关心哪个厂的板子配哪个厂的cpu。在这里,cpu引脚插口就是oop中的抽象接口,cpu厂商按照此接口规则,生成出不同的“具体”cpu,每个型号的cpu就是一个“具体”。


案例分析:

妈妈给孩子读故事书。

class mother
{
	public void Speek(Book book);
}

class Book
{
}
OK,搞定了。但是小孩天天听故事书听烦了,现在心血来潮,要听报纸。这下问题来了,妈妈竟然只会读故事书,不会读报纸啊,这不科学!!!

上面一个简单的案例就反应出了依赖具体带来的隐患。下面看看依赖抽象如何实现:

class IWords
{

}

class mother
{
	public void Speek(IWords book);
}

class Book : public IWords
{
}

class News : public IWords
{

}
OK,现在无论想听什么,只需要拓展相应的类(派生自IWords)就行了,无需去修改其他原有的类。(呀呀,无意间实现了一个《开闭原则》案例)


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值