IoC、DI和AOP思想

IOC思想

IoC(Inversion of Control,控制反转)思想的提出,是为了解决传统的程序设计中,对象间的依赖关系问题。传统的程序设计中,对象之间的依赖关系是在编译期间确定的,而IoC思想则是将对象之间的依赖关系的控制权从程序员手中转移到了容器中,由容器来管理对象之间的依赖关系。这样做的好处是,程序员只需要关注对象的功能实现,不用再关注对象之间的依赖关系,降低了程序的耦合度,提高了程序的可维护性和可扩展性。同时,也方便了程序员对对象的管理和维护。

实际开发中,对象之间的耦合关系,就类似手表内部的齿轮,每个齿轮都紧密啮合在一起,一旦某个齿轮发生故障 ,那么整个系统也意味着崩溃。尽可能让对象之间的关系保持松耦合状态是我们期望的。
ioc

DI思想

“DI” 代表 “Dependency Injection”,是一种面向对象编程的思想,旨在解决模块之间的依赖关系,提高代码的可测试性、可维护性和可重用性。DI 的提出最初可以追溯到 Martin Fowler 在 2004 年所著的 “Inversion of Control Containers and the Dependency Injection pattern” 一书中。这本书探讨了如何使用 IoC 容器管理对象创建和依赖注入,使得系统更加灵活、可扩展和易于测试。通过 DI,我们可以将对象的创建和依赖关系的管理交给容器来完成,从而降低组件之间的耦合度,并使得应用程序更易于维护和扩展
di
在图片中可以看到,UserService存在于BeanFactory中,UserDao也存在于BeanFactory中,它们可以在BeanFactory内部进行结合
di

AOP思想

AOP(Aspect-Oriented Programming,面向切面编程)是一种编程思想,旨在将程序中的横切关注点(如日志记录、性能统计、异常处理等)从主业务逻辑中剥离出来。AOP通过定义切点(程序执行的特定地方)和通知(执行在特定切点上的额外代码),使得程序可以在多个不同的地方插入相同的代码逻辑。这样可以提高代码的重用性、可扩展性和可维护性,同时也能够降低耦合度。常见的AOP框架有Spring AOP和AspectJ。
aop

OOP是纵向对一个事物的抽象,一个对象包括静态的属性信息,包括动态的方法信息等。而AOP是横向的对不同事物的抽象,属性与属性、方法与方法、对象与对象都可以组成一个切面,而用这种思维去设计编程的方式叫做面向切面编程
aop

总结

  1. IoC控制反转,是将程序创建Bean的权利反转给第三方;
  2. DI依赖注入,某个完整Bean需要依赖于其他Bean(或属性)的注入;
  3. AOP面向切面编程,用横向抽取方法(属性、对象等)思想,组装成一个功能性切面。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值