zoukankan      html  css  js  c++  java
  • Java设计模式之依赖倒置原则

    java 设计原则的依赖倒置原则 -- DIP

    Denpendence Inversion Principle

    特点是

    1. 高层模块不依赖底层模块'''两者都依赖于抽象'''
    2. 抽象不依赖于细节
    3. 细节应该依赖于抽象

    --java中的具体体现是--

    1. 模块间依赖通过抽象发生,实现类之间不直接产生依赖关系,其依赖关系通过接口或者是抽象关系产生
    2. 接口或抽象不依赖于具体的实现类
    3. 实现类依赖于接口或者抽象类
      个人觉得这几点总结非常好,而且在实际场景中我们应该去多加应用,而且对源码的解读也会有很大的帮助

    一个金典例子

    司机开车,有奔驰和宝马两种车,依赖倒置原则显示如下:
    图示

    //司机接口
    public interface Idriver{
        public void drive(Icar car);
    }
    
    //描述类
    public class Driver implements Idriver{
        public void drive(Icar car){
            car.run();
        }
    }
    
    //抽象接口所有车都能run
    public interface Icar{
        public void run();
    }
    
    //奔驰车
    public class Benz implements Icar{
        public void run(){
            syso("奔驰行驶");
        }
    }
    
    //宝马车
    public class BMW implements Icar{
        public void run(){
            syso("宝马行驶");
        }
    }
    
    //测试类
    public class Test{
        public static void main(String[] args){
            Idriver driver = new Idriver;
            Icar car = new BMW();
            driver.drive(car);
        }
    }
    
    

    宝马行驶

    会感觉到现在就是面向接口编程,有时候会使项目结构更清晰,减少代码量,个人非常推崇

    借助于:电子工业出版社《设计原则》

  • 相关阅读:
    MySQL 你好,死锁
    Python+Scrapy+Selenium数据采集
    令牌桶限频(Token Bucket)
    Go 逃逸分析
    ElasticSearch 连载二 中文分词
    ElasticSearch 连载一 基础入门
    基于GitLab CI搭建Golang自动构建环境
    Go 性能分析之案例一
    MySQL InnoDB 行记录格式(ROW_FORMAT)
    MySQL InnoDB 逻辑存储结构
  • 原文地址:https://www.cnblogs.com/ontoweb-zp/p/7843686.html
Copyright © 2011-2022 走看看