千家信息网

Angular中依赖注入的概念分析

发表于:2025-11-15 作者:千家信息网编辑
千家信息网最后更新 2025年11月15日,这篇文章主要为大家展示了"Angular中依赖注入的概念分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Angular中依赖注入的概念分析"这篇文章吧。
千家信息网最后更新 2025年11月15日Angular中依赖注入的概念分析

这篇文章主要为大家展示了"Angular中依赖注入的概念分析",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"Angular中依赖注入的概念分析"这篇文章吧。

依赖注入概念:

维基百科对依赖注入的解释:在软件工程中,依赖注入是实现控制反转的一种软件设计模式,一个依赖是一个被其他对象(client)调用的对象(服务),注入则是将被依赖的对象(service)实例传递给依赖对象(client)的行为。

将 被依赖的对象传给依赖者,而不需要依赖者自己去创建或查找所需对象是DI的基本原则。

依赖注入允许程序设计遵从依赖倒置原则(简单的说就是要求对抽象进行编程,不要对实现进行编程,这样就降低了客户与实现模块间的耦合) 调用者(client)只需知道服务的接口,具体服务的查找和创建由注入者(injector)负责处理并提供给client,这样就分离了服务和调用者的依赖,符合低耦合的程序设计原则。也是依赖注入的主要目的。【相关教程推荐:《angular教程》】

控制反转

控制反转和依赖注入是相辅相成的。例子:classA依赖classB但是classA不主动创建classB的实例,通过参数的形式传递进来。

class A {    construct(private b: B) {}}class B {}const a: A = new A(new B());

Angular依赖注入是实例化组件的时候,将服务的实例传递进来,形成了控制反转。

依赖注入

Angular依赖注入使用的都是一个实例,也是Angular通过服务通信的一种方式。如果不适用依赖注入,多个实例,组件间通信也就无法使用服务了。 app.module.ts:

import { BrowserModule } from '@angular/platform-browser';import { NgModule, InjectionToken } from '@angular/core';import { AppComponent } from './components/app/app.component';import { SingleServiceService } from './service/single-service.service';import { MyServiceService } from './service/my-service.service';import { UseServiceService } from './service/use-service.service';import { ValueServiceService } from './service/value-service.service';import { ReactiveFormsModule, FormsModule } from '@angular/forms';import { HttpClientModule } from '@angular/common/http';export interface AppConfig {    title: string}export const CONFIG = new InjectionToken('描述令牌的用途');const USE_Config = {    title: "非类的注入令牌"}@NgModule({    declarations: [        AppComponent    ],    imports: [        BrowserModule,        HttpClientModule,        FormsModule,        ReactiveFormsModule    ],    providers: [        SingleServiceService,        // 完整形式        // {provide: SingleServiceService, useClass: SingleServiceService}        // provide 属性存有令牌,它作为一个 key,在定位依赖值和配置注入器时使用。        // 属性二通知如何创建依赖,实际依赖的值可以是useClass、 useExisting、useValue 或 useFactory        // useExisting起别名,依赖注入也可以注入组件        {provide: MyServiceService, useClass: UseServiceService},        // useValue可以是字符串,对象等        {provide: ValueServiceService, useValue: "依赖注入字符"},        // 使用 InjectionToken 对象来为非类的依赖选择一个提供者令牌        { provide: CONFIG, useValue: USE_Config }    ],    bootstrap: [AppComponent],    entryComponents: []})export class AppModule { }

SingleServiceService:

import { Injectable } from '@angular/core';@Injectable()export class SingleServiceService {constructor() { }}

MyServiceService:

import { Injectable } from '@angular/core';@Injectable()export class MyServiceService {    constructor() { }    getName(): string {        return "my-service";    }    }

UseServiceService:

import { Injectable } from '@angular/core';@Injectable()export class UseServiceService {    constructor() { }    getName(): string {        return "use-service";    }}

ValueServiceService:

import { Injectable } from '@angular/core';@Injectable()export class ValueServiceService {constructor() { }}

以上是"Angular中依赖注入的概念分析"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

对象 服务 实例 概念 令牌 控制 分析 内容 原则 篇文章 组件 设计 字符 属性 形式 教程 用者 程序 程序设计 软件 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器遇到意外情况阻止完成请求 网络安全和应用程序开发 华为服务器1288v2远程开机 网络安全法律法规学习记录 嵌入式软件开发为什么出差 账户注销后还在服务器里吗 网络安全315曝光 电脑无法连接服务器网络标志 绵阳网络技术价目表 r语言 去掉一部分数据库 数据库具有双机热备功能 广州摇篮软件开发有限公司参保地 贵阳网络安全学习要怎么学 易语言数据库登陆教程源码 中国植物图谱数据库 数据库StuDAO 网络安全和信息化工作自评 依法管网 网络安全法 刺客信条起源数据库在哪里 青山区推广网络安全维护管理系统 芜湖永平网络技术服务 无法连接数据库1038 台服冒险岛服务器维护 使命召唤官方服务器 访问一台服务器命令 学校维护网络安全议事日程 数据库登录密码一直错误 百度网络安全和信息化 煜通网络技术有限公司 软件开发技术咨询费用
0