学习目录

本文主要给大家介绍的是关于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中的依赖注入
# 第一个
# 客户端
# 第二个
# 看完
# 新造
# 一辆车
# 重构
# 的是
# 解决了
# 我要
# 相关内容
# 将会
# 闭门造车
# 你想
# 我们可以
# 给大家
# 软件工程
# 但却
# 三种
# 来看看
相关文章:
如何在建站宝盒中设置产品搜索功能?
制作表格网站有哪些,线上表格怎么弄?
浙江网站制作公司有哪些,浙江栢塑信息技术有限公司定制网站做的怎么样?
南京做网站制作公司,南京哈发网络有限公司,公司怎么样,做网页美工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小时内与您取得联系。