全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

Angular 4依赖注入学习教程之简介(一)

学习目录

  • Angular 4 依赖注入教程之一 依赖注入简介
  • Angular 4 依赖注入教程之二 组件服务注入
  • Angular 4 依赖注入教程之三 ClassProvider的使用
  • Angular 4 依赖注入教程之四 FactoryProvider的使用
  • Angular 4 依赖注入教程之五 FactoryProvider配置依赖对象
  • Angular 4 依赖注入教程之六 Injectable 装饰器
  • Angular 4 依赖注入教程之七 ValueProvider的使用
  • Angular 4 依赖注入教程之八 InjectToken的使用

本文主要给大家介绍的是关于Angular 4 依赖注入简介的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:

本系列教程的开发环境及开发语言:

  • Angular 4 +
  • Angular CLI
  • TypeScript

基础知识

Angular CLI 基本使用

1、安装 Angular CLI (可选)

npm install -g @angular/cli

2、创建新的项目

ng new PROJECT-NAME

3、启动本地服务器

cd PROJECT-NAME
ng serve

依赖注入简介

在介绍依赖注入的概念和作用前,我们先来看个例子。各位看官请睁大眼睛,我要开始 "闭门造车" 了。

示例说明

一辆车内部构造很复杂,出于简单考虑,我们就只考虑三个部分:车身、车门和引擎。接下来我们来定义各个部分。

1.定义车身类

export default class Body { }

2.定义车门类

export default class Doors { }

3.定义车引擎类

export default class Engine {
 start() {
 console.log('🚗开动鸟~~~');
 }
}

4.定义汽车类

import Engine from './engine';
import Doors from './doors';
import Body from './body';

export default class Car {
 engine: Engine;
 doors: Doors;
 body: Body;

 constructor() {
 this.engine = new Engine();
 this.body = new Body();
 this.doors = new Doors();
 }

 run() {
 this.engine.start();
 }
}

一切已准备就绪,我们马上来造一辆车:

let car = new Car(); // 造辆新车
car.run(); // 开车上路咯

车已经可以成功上路,但却存在以下问题:

  • 问题一:在创建新车的时候,你没有选择,假设你想更换汽车引擎的话,按照目前的方案,是实现不了的。
  • 问题二:在汽车类内部,你需要在构造函数中手动去创建各个部件。

为了解决第一个问题,提供更灵活的方案,我们可以重构一下已定义的汽车类,具体如下:

export default class Car {
 engine: Engine;
 doors: Doors;
 body: Body;

 constructor(engine, body, doors) {
 this.engine = engine;
 this.body = body;
 this.doors = doors;
 }

 run() {
 this.engine.start();
 }
}

重构完汽车类,我们来重新造辆新车:

let engine = new NewEngine();
let body = new Body();
let doors = new Doors();
this.car = new Car(engine, body, doors);
this.car.run();

此时我们已经解决了上面提到的第一个问题,要解决第二个问题我们要先介绍一下依赖注入的概念。

依赖注入的概念

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

看完概念是不是已经晕了,其实我们只要记住依赖注入的三种角色:使用者、服务(依赖对象)及注入器(Injector)。接下来我们马上来看一下 Angular 中依赖注入的应用。

Angular 依赖注入的应用

更新后的汽车类

@Injectable()
export default class Car {
 constructor(
 private engine: Engine, 
 private body: Body, 
 private doors: Doors) {}
 
 run() {
 this.engine.start();
 }
};

具体应用

import { ReflectiveInjector } from '@angular/core';

let injector = ReflectiveInjector.resolveAndCreate([Car, 
 Engine, Doors, Body]);
let car = injector.get(Car);
car.run();

看完上面的示例,我们前面提到的第二个问题,已经完美解决了哈。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。


# angular4  # 依赖注入  # angularjs依赖注入  # angular依赖注入  # 详解AngularJS中的依赖注入机制  # 详解Angularjs中的依赖注入  # AngularJS学习笔记之依赖注入详解  # AngularJS 依赖注入详解和简单实例  # AngularJS之依赖注入模拟实现  # AngularJS 依赖注入详解及示例代码  # 自学实现angularjs依赖注入  # AngularJS学习第二篇 AngularJS依赖注入  # AngularJS应用开发思维之依赖注入3  # 深入理解Angular中的依赖注入  # 第一个  # 客户端  # 第二个  # 看完  # 新造  # 一辆车  # 重构  # 的是  # 解决了  # 我要  # 相关内容  # 将会  # 闭门造车  # 你想  # 我们可以  # 给大家  # 软件工程  # 但却  # 三种  # 来看看 


相关文章: 如何在建站宝盒中设置产品搜索功能?  制作表格网站有哪些,线上表格怎么弄?  浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?  南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工DIV+CSS待遇怎么样?  免费制作小说封面的网站有哪些,怎么接网站批量的封面单?  如何在IIS7中新建站点?详细步骤解析  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  建站之星各版本价格是多少?  浅析上传头像示例及其注意事项  如何选择PHP开源工具快速搭建网站?  如何制作新型网站程序文件,新型止水鱼鳞网要拆除吗?  ,网站推广常用方法?  行程制作网站有哪些,第三方机票电子行程单怎么开?  建站之星如何防范黑客攻击与数据泄露?  深圳企业网站制作设计,在深圳如何网上全流程注册公司?  如何安全更换建站之星模板并保留数据?  如何在云指建站中生成FTP站点?  建站之星安装提示数据库无法连接如何解决?  北京企业网站设计制作公司,北京铁路集团官方网站?  详解jQuery中基本的动画方法  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  如何高效完成独享虚拟主机建站?  c# 在高并发场景下,委托和接口调用的性能对比  建站主机选择指南:服务器配置与SEO优化实战技巧  css网站制作参考文献有哪些,易聊怎么注册?  如何快速生成高效建站系统源代码?  XML的“混合内容”是什么 怎么用DTD或XSD定义  如何在IIS中新建站点并配置端口与物理路径?  网页设计网站制作软件,microsoft office哪个可以创建网页?  广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?  新网站制作渠道有哪些,跪求一个无线渠道比较强的小说网站,我要发表小说?  制作网站建设的公司有哪些,网站建设比较好的公司都有哪些?  青岛网站设计制作公司,查询青岛招聘信息的网站有哪些?  h5在线制作网站电脑版下载,h5网页制作软件?  如何用免费手机建站系统零基础打造专业网站?  c++如何打印函数堆栈信息_c++ backtrace函数与符号名解析【方法】  建站之星伪静态规则如何正确配置?  简易网站制作视频教程,使用记事本编写一个简单的网页html文件?  建站之星下载版如何获取与安装?  如何在腾讯云免费申请建站?  如何快速上传建站程序避免常见错误?  测试制作网站有哪些,测试性取向的权威测试或者网站?  网站制作公司广州有几家,广州尚艺美发学校网站是多少?  儿童网站界面设计图片,中国少年儿童教育网站-怎么去注册?  制作销售网站教学视频,销售网站有哪些?  如何通过服务器快速搭建网站?完整步骤解析  电商平台网站制作流程,电商网站如何制作?  如何通过IIS搭建网站并配置访问权限?  网站app免费制作软件,能免费看各大网站视频的手机app?  定制建站策划方案_专业建站与网站建设方案一站式指南 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。