di-simple

1.0.0 • Public • Published

DI-simple

简易版的 依赖注入

DI(依赖注入)的发展

  • 设计模式

    刚开始,我们更习惯将其称之为一种设计模式,一种职责转移,一个类对外部类的依赖只需要声明在构造函数中即可,具体的依赖类的实现细节以及创建方式,不需要关心,交给这个类的使用者来负责。这种方式好像是:类对想创建它的消费者说,hey,想创建我,当然可以,但是,我还依赖 xxx, 你需要先创建它们,然后再来把它们给我。

    这种方式,很明显,有一定的优点,但是缺点同样不容小视,每次创建类,最为消费者,我都需要先创建它的所有依赖,假如要创建1000次呢?

  • 框架级别

    慢慢发展,我们发现,可以将这种依赖统一管理,对使用者透明。由框架统一管理对象的创建,消费者只需要声明它们的依赖即可,在需要的时候,直接创建就可以了.

使用方式

import { Inject, Injector } from './src/index';

class A{
    title:string = '123';
}

class B{}

class C{}

class D{
    title:string = 'abc';
    constructor(@Inject('A') a, @Inject('B') b){
        this.a = a;
        this.b = b;
    }

    test() {
        console.log('assert equel 123', this.a.title);
    }
}



// 创建一个注入器
const injector = Injector.resolveAndCreate([A, B, C, D]);


const a1 = injector.get('A');
const a2 = injector.get('A');

// 两者应该是同一个对象
console.log(`output: ${ a1 == a2 }`);

更多使用,参考测试用例以及demo目录下的示例

Readme

Keywords

Package Sidebar

Install

npm i di-simple

Weekly Downloads

1

Version

1.0.0

License

ISC

Last publish

Collaborators

  • morejs