学习目录

本文主要给大家介绍的是关于Angular 4 依赖注入简介的相关内容,分享出来供大家参考学习,下面来看看详细的介绍:
本系列教程的开发环境及开发语言:
基础知识
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中的依赖注入
# 第一个
# 客户端
# 第二个
# 看完
# 新造
# 一辆车
# 重构
# 的是
# 解决了
# 我要
# 相关内容
# 将会
# 闭门造车
# 你想
# 我们可以
# 给大家
# 软件工程
# 但却
# 三种
# 来看看
相关文章:
成都网站制作价格表,现在成都广电的单独网络宽带有多少的,资费是什么情况呢?
如何用PHP工具快速搭建高效网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
如何确认建站备案号应放置的具体位置?
如何在IIS中新建站点并配置端口与物理路径?
如何通过智能用户系统一键生成高效建站方案?
如何在云指建站中生成FTP站点?
在线ppt制作网站有哪些,请推荐几个好的课件下载的网站?
如何通过WDCP绑定主域名及创建子域名站点?
网站网页制作专业公司,怎样制作自己的网页?
开封网站制作公司,网络用语开封是什么意思?
做企业网站制作流程,企业网站制作基本流程有哪些?
网站制作知乎推荐,想做自己的网站用什么工具比较好?
打鱼网站制作软件,波克捕鱼官方号怎么注册?
C++如何编写函数模板?(泛型编程入门)
猪八戒网站制作视频,开发一个猪八戒网站,大约需要多少?或者自己请程序员,需要什么程序员,多少程序员能完成?
网站制作需要会哪些技术,建立一个网站要花费多少?
如何正确下载安装西数主机建站助手?
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
如何通过FTP服务器快速搭建网站?
专业型网站制作公司有哪些,我设计专业的,谁给推荐几个设计师兼职类的网站?
建站主机系统SEO优化与智能配置核心关键词操作指南
如何在腾讯云服务器上快速搭建个人网站?
制作网站软件推荐手机版,如何制作属于自己的手机网站app应用?
深圳网站制作费用多少钱,读秀,深圳文献港这样的网站很多只提供网上试读,但有些人只要提供试读的文章就能全篇下载,这个是怎么弄的?
广州网站制作公司哪家好一点,广州欧莱雅百库网络科技有限公司官网?
网站制作服务平台,有什么网站可以发布本地服务信息?
学校免费自助建站系统:智能生成+拖拽设计+多端适配
网站制作软件免费下载安装,有哪些免费下载的软件网站?
建站之星伪静态规则如何设置?
制作宣传网站的软件,小红书可以宣传网站吗?
重庆网站制作公司哪家好,重庆中考招生办官方网站?
长春网站建设制作公司,长春的网络公司怎么样主要是能做网站的?
如何快速搭建响应式可视化网站?
油猴 教程,油猴搜脚本为什么会网页无法显示?
已有域名能否直接搭建网站?
台州网站建设制作公司,浙江手机无犯罪记录证明怎么开?
我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?
如何快速完成中国万网建站详细流程?
如何在阿里云ECS服务器部署织梦CMS网站?
javascript中对象的定义、使用以及对象和原型链操作小结
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
建站之星下载版如何获取与安装?
建站VPS能否同时实现高效与安全翻墙?
中山网站制作网页,中山新生登记系统登记流程?
网站制作怎么样才能赚钱,用自己的电脑做服务器架设网站有什么利弊,能赚钱吗?
移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?
如何在七牛云存储上搭建网站并设置自定义域名?
焦点电影公司作品,电影焦点结局是什么?
定制建站策划方案_专业建站与网站建设方案一站式指南
*请认真填写需求信息,我们会在24小时内与您取得联系。