何以解忧
何以解忧
发布于 2025-08-17 / 16 阅读
0
0

Nestjs入门笔记

一,IOC控制反转,DL依赖注入

//场景
class a {
    name: string
    constructor(/*name:string*/) { //强耦合
        this.name = "张三"
    }
}

class b {
    name: string
    constructor(/*name:string*/) { //强耦合
        this.name = "李四"
    }
}

class box {
    a: any
    b: any
    constructor() {
        this.a = new a() //强耦合
        this.b = new b() //强耦合
    }
}


//解耦合
class A {
    name: string
    constructor(name: string) {
        this.name = name
    }
}
class B {
    name: string
    constructor(name: string) {
        this.name = name
    }
}

//容器
class Container {
    box: any 
    constructor() {
        this.box = {}
    }
    //注入
    injection(key: string, model: any) {
        this.box[key] = model
    }
    //读取
    get(key: string) {
        return this.box[key]
    }
}

const container = new Container()
container.injection('a', new A('张三'))//注入a
container.injection('b', new B('李四'))//注入b
class BOX {
    a: any
    b: any
    constructor() {
        this.a = container.get('a')//获取引用
        this.b = container.get('b')//获取引用
    }
}

二,NestJs-装饰器


评论