依赖注入通俗讲解
来源:互联网 发布:海贼王衣服淘宝 编辑:程序博客网 时间:2024/05/22 04:25
依赖注入通俗讲解
(1)不依赖注入的情况
下面这个例子,是不采用依赖注入的紧耦合的写法,在子弹供应商BulletProvider出现的时候,子弹才生产出来,而且生产时类型固定,如果要增加类型,则必须同时对BulletProvider和Bullet进行改造:
子弹生产商是这样干活的,
Class Bullet{ “不依赖注入的子弹,独家生产,别无他货”}
而子弹供应商是这样干活的,
class BulletProvider{ Bullet bullet; BulletProvider { bullet = new Bullet(); } }
(2)依赖注入的情况
我们期望,子弹和最终供应商无关,可以由任何子弹生产厂家提供,
//规定子弹必须具有共有属性
Interface BulletModInterface { Public function bulletinfo() { }}
//生产blunt型号的子弹
Class Bluntbullet implements BulletModInterface{ Public function bulletinfo() { “blunt” //个性化生产1 } }
//生产sharp型号的子弹
Class Sharpbullet implements BulletModInterface{ Public function bulletinfo() { “sharp” //个性化生产2 } }
为了防止供应假冒伪劣产品,我们必须限定供应的bullet的属性,并且,子弹的创建,是在供应商之外,可以由任意有能力的生产厂家(比如Sharpbullet或Bluntbullet)提供,于是,我们说供应商依赖生产厂家注入了子弹。
Class BulletProvider{ Protected mod; Public bullet(BulletModInterface mod) { this.mod = mod; //确保必须是BulletModInterface }}
//生产一颗子弹
bluntblt = new Bluntbullet;
//注入一个子弹依赖模组,也就是说,在子弹供应商出现之前,子弹就已经存在了,在供应商出现之后,子弹注入到供应商的仓库里去。
myblt = new BulletProvider (bluntblt);
当然,程序中一般会这么写
myblt = new BulletProvider (new Bluntbullet);
结论,传统的思路是,当子弹供应商需要子弹时,如果供应商有制造子弹的方法,就调用这个方法去制造子弹;依赖注入的思想就是,先创建子弹,在创建供应商的时候,把子弹注入进去,目的就是注入更符合自己当时使用所需要要的子弹。
OK,就这样!
阅读全文
0 0
- 依赖注入通俗讲解
- Dragger2依赖注入简单讲解:
- 如何通俗的理解java的依赖注入!
- IOC和DI(控制反转和依赖注入)通俗解析
- Spring的核心机制依赖注入讲解
- Spring的核心机制依赖注入讲解
- Spring讲解----------依赖注入(DI)
- Android 依赖注入:Dagger 实例讲解(Demo下载)
- Android 依赖注入: Dagger 2 实例讲解(一)
- Android 依赖注入:Dagger 实例讲解(Demo下载)
- Android Dagger2.0依赖注入详解(实例讲解)
- 二进制通俗讲解
- 普利姆算法通俗讲解
- 通俗语言讲解PON
- 设计模式--通俗讲解
- 设计模式--通俗讲解
- 粒子滤波通俗讲解
- spring事务通俗讲解
- CodeForces
- 手机扫描识别证件软件颠覆传统录入
- java 8 lambda 表达式的优缺点总结
- 深入浅出的webpack3入门教程
- 【HDU】5971-Wrestling Match 二分染色
- 依赖注入通俗讲解
- RHEL 6.5系统安装配置图解教程(rhel-server-6.5)
- Python---内存回收机制
- Spring Boot中使用JdbcTemplate访问数据库
- Linux_1(初识Linux)
- UVALive 7544 Banking II (DP)
- JAVA:计算1+2+...+100的和以及m!
- 【高级软件工程课程总结】
- 私有云落地解决方案之网络篇-网络架构