依赖注入的方式以及优缺点
来源:互联网 发布:免费越狱软件 编辑:程序博客网 时间:2024/06/06 21:04
依赖注入的三种方式以及优缺点。
- 博客分类:
- 设计模式
- IOC
依赖注入是指在创建一个对象时,自动地创建它依赖的对象,并注入。
大家都知道有三种途径来实现依赖注入,我这里总结一下这三种方式的优缺点:
1.构造方法注入:
优点:
- 在构造方法中体现出对其他类的依赖,一眼就能看出这个类需要其他那些类才能工作。
- 脱离了IOC框架,这个类仍然可以工作,POJO的概念。
- 一旦对象初始化成功了,这个对象的状态肯定是正确的。
缺点:
- 构造函数会有很多参数(Bad smell)。
- 有些类是需要默认构造函数的,比如MVC框架的Controller类,一旦使用构造函数注入,就无法使用默认构造函数。
- 这个类里面的有些方法并不需要用到这些依赖(Bad smell)。
优点:
- 在对象的整个生命周期内,可以随时动态的改变依赖。
- 非常灵活。
缺点:
- 对象在创建后,被设置依赖对象之前这段时间状态是不对的。
- 不直观,无法清晰地表示哪些属性是必须的。
方法参数注入的意思是在创建对象后,通过自动调用某个方法来注入依赖。类似如下代码。
- public class MovieRecommender {
- private MovieCatalog movieCatalog;
- private CustomerPreferenceDao customerPreferenceDao;
- @Autowired
- public void prepare(MovieCatalog movieCatalog,
- CustomerPreferenceDao customerPreferenceDao) {
- this.movieCatalog = movieCatalog;
- this.customerPreferenceDao = customerPreferenceDao;
- }
- // ...
- }
这种方法可能不太常用,一般是只有一个方法依赖到注入的对象时用到,如果有多个方法依赖到注入的对象,还是比较倾向于使用构造方法注入。
优点:
- 比较灵活。
缺点:
- 新加入依赖时会破坏原有的方法签名,如果这个方法已经被其他很多模块用到就很麻烦。
- 与构造方法注入一样,会有很多参数。
我个人很不倾向于在业务逻辑层中应用Autowired 或者是 Inject这样的annotation(Attribute)来实现注入,因为一旦脱离了IOC框架,代码就无法重用了。
阅读全文
0 0
- 依赖注入的方式以及优缺点
- spring依赖注入方式及其优缺点
- 依赖注入的方式
- 依赖注入的方式
- 依赖注入的方式
- Spring依赖注入的方式
- spring-依赖注入的方式
- spring依赖注入的方式
- 注入依赖对象的方式
- spring依赖注入的方式
- 10006---依赖注入的方式
- AngularJS的依赖注入方式
- AngularJS的依赖注入方式
- Spring的依赖注入方式
- spring的依赖注入方式
- Spring的依赖注入方式
- Spring的两种依赖注入方式:setter方法注入与构造方法注入 以及两种方式的区别!
- spring依赖注入的好处以及三种注入的方式
- 线性回归
- 数据结构--顺序栈和链式栈
- 随笔17.10.26
- Unity3D学习笔记2-应用脚本控制物体运动
- 网络编程的概述2 网络通信中的三要素3 InetAddress的概述和测试,IP地址:InetAddress 传输协议(网络协议)TCP 可靠协议,需要连接,效率会稍低 没有大小的限制UDP 不:
- 依赖注入的方式以及优缺点
- 二维数组的遍历
- ZKW费用流 模板
- Linux操作系统与实训教程 第一章 Linux概述
- LeetCode刷题(22)
- 并发与并行的区别?
- vue生命周期的理解
- HashMap实现原理及源码分析
- Al:从零开始的汇编语言1