Spring初步-依赖注入的原理
来源:互联网 发布:premise 知乎 编辑:程序博客网 时间:2024/06/05 14:53
要使用一个工具去完成诸多的的任务,必须要理解这个工具的原理和核心思想,而spring最重要的工具毫无疑问是依赖注入(DI)和面向切面编程(AOP),web开发中最重要的思想莫过于mvc思想
依赖注入
提到依赖注入,我会想到很多与之有关的词 “面向接口编程”,”策略模式”,”命令模式”等等,这些词其实都围绕着一个中心”解耦合”就像《head first设计模式》里面开篇就提到的那个鸭子一样,红头鸭,塑料鸭,会飞的和不会飞的鸭和他们的行为之间的强耦合会把我们的软件结构弄得一团乱麻,而面向接口的编程方式通过降低耦合毫无疑问会大大改善这种状况
- 两个类相互依赖的状况
public class DuckFly implements FlyBehavior{ public void fly() { System.out.println("Duck is flying"); }}public class DependencyDuck { //Duck依赖于DuckFly类 public DuckFly flybehavior = new DuckFly(); public void fly() { flybehavior.fly(); }}
如上面所示,Duck依赖于DuckFly类,如果有一只不会飞的鸭子,或者飞的和一只小鸡一样,就必须修改duck改变依赖的类,这就是强耦合带来的弊端
策略模式
public interface FlyBehavior {public void fly();}public class Duck {FlyBehavior flybehavior;public Duck(FlyBehavior flybehavior) { //注入依赖的实例 this.flybehavior = flybehavior;}public void setFlyBehavior(FlyBehavior flybehavior) { //运行时动态注入依赖的实例 this.flybehavior = flybehavior;}public void fly() { flybehavior.fly();}}
上面的代码中,duck类只持有一个flybehavir的接口,任何实现了这个接口的fly行为都可以在Duck构造,甚至运行时改变鸭子飞行的行为,不管鸭子会不会飞,甚至不是鸭子的飞行方式,都可以在不改变duck类的情况下实现,这就是解耦合的威力,而spring通过注解,配置文件等方式很好的实现了这一点
阅读全文
0 0
- Spring初步-依赖注入的原理
- Spring依赖注入的原理
- 初步理解spring ioc原理(读完可自己实现依赖注入部分的spring框架)
- spring依赖注入原理
- 依赖注入原理 Spring
- spring依赖注入原理
- Spring依赖注入原理
- 模拟spring的依赖注入原理
- spring依赖注入的实现原理
- spring依赖注入的实现原理
- spring依赖注入的实现原理
- spring的依赖注入和工作原理
- 编码剖析Spring依赖注入的原理
- spring依赖注入原理的简单模拟
- Spring原理-注入依赖的过程
- 编码剖析Spring依赖注入的原理
- Spring、Spring依赖注入与编码剖析Spring依赖注入的原理
- Spring依赖注入原理学习
- AFNetworking请求服务器错误
- Unity 导出xcode工程中 怎么设置为Append的方式导出之命令行
- 集合扩容问题(ArrList为例,常用集合扩容机制) -- JAVA 基础
- 高通AP侧新增AT命令流程
- Grub 命令行启动Windows全过程
- Spring初步-依赖注入的原理
- 日期时间选择器 Bootstrap日期和时间表单组件。
- Swift3.0学习笔记-Extensions
- hadoop 各种概念整理
- 三 机器人仿真软件Gazebo介绍
- ORA-报错解释
- 人工智能端走的不只是“饭碗”
- 马士兵Java自学之路
- UE4学习笔记