Notes
  • 速记
  • 前端面试
  • HTML / CSS
    • HTML
    • CSS
    • CSS Modules
      • CSS Modules
        • CSS Modules Usage
      • Stylus
      • Nunjucks
  • Javascript
    • 正则表达式
    • 代理(Proxy)和反射(Reflection)
    • 类型转换
    • 按位操作
    • 数据可视化
    • 数据采集
      • 无(全)埋点
      • 模块曝光事件
    • package
      • axios
    • Event Loop
    • React
      • React热身
      • VDOM和DOM-diff
    • Vue
    • Omi
    • MVVM
    • 百度小程序
    • AST抽象语法树
    • ServiceWorker
    • WebSocket
  • NodeJS
    • Assert 断言
    • chai.js 断言库
    • Node Global Obj And Var
    • CLI Writed By Nodejs
    • Framework
      • Hapi Js Framework
    • Electrode JS
      • Electrode Platform
      • Electrode Question
    • Redux
      • Redux Basic Usage
      • Middleware And Asynchronous
      • React-Redux 的用法
    • NPM
      • package.json
      • semver
    • Webpack
      • 编写插件
    • 同构渲染
    • 调用DLL
  • 服务端
    • Inotify
    • Linux
    • Nginx
      • Nginx简介
      • Nginx原理、安装预配置
    • TCP/IP 协议
    • HTTP 协议
      • 基础概念篇
      • 协议详解篇
    • Process
      • 阻塞与非阻塞
      • 进程与线程优性能
  • 数据库
    • GraphQL
  • 移动端
  • 微信小程序
    • 微信小程序安装(linux)
    • 小程序第三方框架
  • 开发工具
    • 开发工具安装
    • Vim Command Collection
    • Git
      • Git Rule
      • Git Submodule
      • gitignore
    • Lerna
    • Ubuntu开发环境安装
  • 运维测试
    • Docker
      • Docker Synopsis
      • docker.sock
    • Nightwatch
    • Jest
  • 算法/数学/架构
    • 设计模式
    • 架构设计经验分享
    • 前端架构
    • 基本数据结构
    • 函数式编程
  • 软件工程
    • 软件生命周期
Powered by GitBook
On this page
  • DIP、IoC、DI、JS
  • 依赖反转原则
  • 控制反转
  • 依赖注入
  • reference

Was this helpful?

  1. 算法/数学/架构

设计模式

Previous算法/数学/架构Next架构设计经验分享

Last updated 5 years ago

Was this helpful?

DIP、IoC、DI、JS

依赖反转原则

依赖反转原则(Dependency inversion principle,DIP),是一种特定的解耦形式,使得高层次的模块不依赖于低层次的模块的实现细节,依赖关系被颠倒(反转),从而使得低层次模块依赖于高层次模块的需求抽象。———— 维基百科

该原则规定: 1. 高层次的模块不应该依赖与低层次的模块,两者都应该依赖于抽象接口。 2. 抽象接口不应该依赖于具体实现。而具体实现则应该依赖于抽象接口

DIP 只是解决了高层次模块直接依赖低层次模块的问题, 但是存在依赖关系创建于高层次模块的问题

控制反转

控制反转(Inversion of Control,IoC),通过控制反转,对象在被创建的时候,有一个控制系统内所有对象的外界实体,将其所依赖的对象的引用传递给它。可以说,依赖被注入到对象中。———— 维基百科

将依赖对象的创建和绑定转移到被依赖对象类的外部来实现。实现控制反转最常见的方式是依赖注入,还有一种方式依赖查找

依赖注入

依赖注入(Dependency Injection,DI),在软件工程中,依赖注入是种实现控制反转用于解决依赖性设计模式。一个依赖关系指的是可被利用的一种对象(即服务提供端)。依赖注入是将所依赖的传递给将使用的从属对象(即客户端)。该服务将会变成客户端的状态的一部分。传递服务给客户端,而非允许客户端来建立或寻找服务,是本设计模式的基本要求

把过程放在外面,将结果带入内部.对于依赖模块的模块,则把依赖作为参数使用

reference

从前端角度彻底搞懂 DIP、IoC、DI、JS
设计模式
DIP、IoC、DI、JS
依赖反转原则
控制反转
依赖注入
reference