23种设计模式-依赖倒转原则

概念:

依赖倒转原则(Dependence Inversion Principle)是指:

1) 高层模块不应该依赖低层模块,二者都应该依赖其抽象

2) 抽象不应该依赖细节,细节应该依赖抽象

3) 依赖倒转(倒置)的中心思想是面向接口编程

4) 依赖倒转原则是基于这样的设计理念:

        相对于细节的多变性,抽象的东西要稳定的多。以抽象为基础搭建的架构比以细节为基础的架构要稳定的多。

        在java中,抽象指的是接口或抽象类,细节就是具体的实现类

5) 使用接口或抽象类的目的是制定好规范,而不涉及任何具体的操作,把展现细节的 任务交给他们的实现类去完成。

理解:

整理理解是,要面向接口编程,有通用的同类方法要抽象出来,具体的实现交给实现方法。例如:吃饭,人吃饭,动物也吃饭,那么吃饭这个动作就可以抽象出来,具体谁吃饭,由实现吃饭这个接口的类去管理定义。

实例:

定义一个人类的类,和吃饭的人类吃饭的类

 以上代码可以看到,如果人要吃饭,那么需要给Eat.eatAll()方法传入一个人的类。那么,如果动物吃饭怎么办?就需要再建一个动物类和动物吃饭的类。这样改动量很大,那么优化就是,将吃饭这个操作抽象出来,让人和动物去实现。

优化:

1.抽取一个吃的动作接口

2.让人的这个类实现这个接口

3.调用的方法以前是传入实体类,现在直接传入一个接口

4.mian方法调用不需要改变

这样的好处是,如果再有动物需要吃东西的话,那么直接加一个动物的类然后实现吃的接口即可 

 

 

 小结:

1、依赖倒转的中心思想是:面向接口编程,传入的参数可以是一个接口

2、将动作抽象出来,具体细节依赖抽象,也就是通用动作抽取出来,谁用谁实现。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值