加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-13 23:12:31 所属栏目:百科 来源:网络整理
导读:设计模式总览 依赖倒置原则(Dependence Inversion Principle) 该原则规定: ①高层模块不依赖低层模块。两者都应该依赖抽象接口 ②抽象不能依赖具体。而具体应该依赖抽象接口 此原则的目的是为了实现解耦。 将依赖关系建立在高层,而低层用来做具体实现 。

设计模式总览



依赖倒置原则(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)就行了,无需去修改其他原有的类。(呀呀,无意间实现了一个《开闭原则》案例)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读