zoukankan      html  css  js  c++  java
  • 控制反转依赖倒置通俗解释

    比如你是餐馆老板,你让厨师做鱼,厨师依赖盐或糖这两种调味品,做出来的鱼是甜是咸由厨师控制

    现在你叫厨师做鱼,并且塞给厨师一罐糖,厨师就被你控制了,只能做糖醋鱼

    就很灵活,你想吃红烧鱼的时候,给厨师盐,像参数一样,厨师就产出咸的鱼了

    原来厨师依赖的糖和盐,作为参数传入了,就是依赖注入

    原来是厨师类来控制产出的,变成由你来控制(通过传入依赖的操作类),就是控制反转

    可能原来新来的厨师你都要交代一句,给我做甜的

    后来就不用交代了,你只要给厨师糖就行,不管哪个厨师,做出来的都是甜的

    厨师就很容易替换了

    和厨师交代做甜做咸相当于修改类的内部,客户每次变换口味,都要修改类的内部,给厨师糖相当于传入参数,客户换口味,只要替换给厨师的参数就好,不用改类的代码了

    spring的xml配置文件里,好多都是给某个类配置入参是哪些具体的实现类的,就好像在程序启动的时候就给做鱼的厨师准备好了糖,给做肉的厨师准备好了盐

    如果口味要变,只要改个xml配置就好

    面向接口编程就是,告诉厨师在鱼下锅的时候用调味料(接口),具体用糖还是盐,看传入的参数

    类里面只操作接口,具体接口的实现类是什么,看入参传进来的

    入参传什么,类就实现成什么样

  • 相关阅读:
    dotnet 新项目格式与对应框架预定义的宏
    dotnet 线程静态字段
    dotnet 线程静态字段
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 拿到显卡信息
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取指定进程的输入命令行
    dotnet 通过 WMI 获取系统信息
    dotnet 通过 WMI 获取系统信息
    PHP show_source() 函数
  • 原文地址:https://www.cnblogs.com/ctxsdhy/p/10608208.html
Copyright © 2011-2022 走看看