阅读须知
本系列教程的开发环境及开发语言:
基础知识
Angular CLI 基本使用
- 安装 Angular CLI (可选)
--- ------- -- ------------
- 创建新的项目
-- --- ------------
- 启动本地服务器
-- ------------ -- -----
依赖注入简介
在介绍依赖注入的概念和作用前,我们先来看个例子。各位看官请睁大眼睛,我要开始 "闭门造车" 了。
示例说明
一辆车内部构造很复杂,出于简单考虑,我们就只考虑三个部分:车身、车门和引擎。接下来我们来定义各个部分。
1.定义车身类
------ ------- ----- ---- - -
2.定义车门类
------ ------- ----- ----- - -
3.定义车引擎类
------ ------- ----- ------ - ------- - -------------------------- - -
4.定义汽车类
------ ------ ---- ----------- ------ ----- ---- ---------- ------ ---- ---- --------- ------ ------- ----- --- - ------- ------- ------ ------ ----- ----- ------------- - ----------- - --- --------- --------- - --- ------- ---------- - --- -------- - ----- - -------------------- - -
一切已准备就绪,我们马上来造一辆车:
--- --- - --- ------ -- ---- ---------- -- -----
车已经可以成功上路,但却存在以下问题:
- 问题一:在创建新车的时候,你没有选择,假设你想更换汽车引擎的话,按照目前的方案,是实现不了的。
- 问题二:在汽车类内部,你需要在构造函数中手动去创建各个部件。
为了解决第一个问题,提供更灵活的方案,我们可以重构一下已定义的汽车类,具体如下:
------ ------- ----- --- - ------- ------- ------ ------ ----- ----- ------------------- ----- ------ - ----------- - ------- --------- - ----- ---------- - ------ - ----- - -------------------- - -
重构完汽车类,我们来重新造辆新车:
--- ------ - --- ------------ --- ---- - --- ------- --- ----- - --- -------- -------- - --- ----------- ----- ------- ---------------
此时我们已经解决了上面提到的第一个问题,要解决第二个问题我们要先介绍一下依赖注入的概念。
依赖注入的概念
在软件工程中,依赖注入是种实现控制反转用于解决依赖性设计模式。一个依赖关系指的是可被利用的一种对象(即服务提供端) 。依赖注入是将所依赖的传递给将使用的从属对象(即客户端)。该服务是将会变成客户端的状态的一部分。 传递服务给客户端,而非允许客户端来建立或寻找服务,是本设计模式的基本要求。 —— 维基百科
看完概念是不是已经晕了,其实我们只要记住依赖注入的三种角色:使用者、服务(依赖对象)及注入器(Injector)。接下来我们马上来看一下 Angular 中依赖注入的应用。
Angular 依赖注入的应用
更新后的汽车类
------------- ------ ------- ----- --- - ------------ ------- ------- ------- ------- ----- ----- ------- ------ ------ -- ----- - -------------------- - --
具体应用
------ - ------------------ - ---- ---------------- --- -------- - ----------------------------------------- ------- ------ ------- --- --- - ------------------ ----------
看完上面的示例,我们前面提到的第二个问题,已经完美解决了哈。如果想进一步了解依赖注入的相关内容,可以参考 Angular 2 DI - IoC & DI - 1 这篇文章哈。