angular 依赖注入

打个比方。我们每家都要上网,上网是要用到光猫的。假设联通公司,提供了一个光猫,是这样的。

class guangmao{
 constructor(){}
 surfing(){console.log("你能上网了)}
}

联通公司已经帮你拉好了宽带,你直接调用就可以上网了,你这样做了

class shangwang{
myguangmao:guangmao;
constructor(){
this.myguangmao = new guangmao();
_surfing(){
this.myguangmao.surfing();
}
}
var myshangwnag = new shangwang();
myshangwang._surfing();

好了,你可以上网了。当然,不止你是这样在上网,有100万家,都是这样搞的。但是突然有一天,联通公司感觉这太亏了。没有收钱。所以联通公司说,你们必须提供自己的身份证,好方便以后我收钱。所以代码改成了这样

class guangmao{
 constructor(id:string){}
 surfing(){console.log("你能上网了)}
}

这个时候,你发现你直接用,不行,你要传如id;所以你改成这样

class shangwang{
myguangmao:guangmao;
constructor(){
this.myguangmao = new guangmao("你的身份证id");
_surfing(){
this.myguangmao.surfing();
}
}
var myshangwnag = new shangwang();
myshangwang._surfing();

当然了,不止你一个这样改,几百万人都这样改。是不是感觉很麻烦。这就影响到了几百万人。如果换算成几百万行代码。你光改这个方法你都可以干到退休。
我们称,某个类的运行是依赖于某个类的;也就是我们的上网类是依赖于光猫类的。

这个时候,有个光头,灵光一闪,发现可以这样搞。

class shangwang{
myguangmao:guangmao;
constructor(myguangmao:guangmao){
this.myguangmao = myguangmao;
_surfing(){
   this.myguangmao.surfing();
}
}
var _guangmao = new guangmao("身份证序列id")
var myshangwnag = new shangwang();
myshangwang._surfing();

也就是说,联通公司收集了百万用户者的身份证,给每个人的光猫搞成单独的,这时使用人员就不用管那么多了,拿了就用。我们称这种就叫以来注入。简单的说,就是在实例化类时,将它的依赖项通过构造函数参数的形式注入到类的内部,就是依赖注入DI

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

李卓书

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值