spring的aop和ioc都是什么举个例子 不要用像网上说的那样专业素语能让初学者容易听懂就行了
展开全部
Aspect Oriented Programming 面向切面编程(面向方面编程)。
从传统面向对象的编程角度出发,相对于OOP,面向AOP更具有可拓展性和高维护性的优势。具体表现在:以往我们都以“世界万物皆对象”的思想进行编程时,会将一切事物抽象成一个实体,并使用这个实体进行我们业务方面的拓展。当然,这样做是不错的,但是带来了问题!比如说,当我们抽象出来的一个实体不再是一个具体的实物,而是可分为多个抽象实物的统一点时,那么之前对于该实体进行的一切程序开发都需要进行维护和拓展,从而增加了维护成本。
而AOPer崇尚面向方面编程,即将一切实物都抽象的看做是多个实体的抽象体,而每个不同类型的抽象体都能够作为这个实物的一种实现机制的表现,从而在业务拓展时减少对原有代码的维护,取而代之的则是 增加->切换 的操作。
-------------
IOC,名为对象控制反转,简单的可以理解为AOP概念的一个功能实现。主要运用在对象中!
当你将面向对象理解的比较深入的时候,就可以这样理解IOC了:
当你需要敲碎一块石头时,你将怎么做,分别说明这个过程?
我可以给你的答案是:
1、我可以用槌子来敲碎石头
2、我可以用碎石机来敲碎石头
3、我可以找别人来帮忙敲碎石头
然后分析这个需求。主体是“我”,动作是“敲”。这里的IOC主要是用来控制“用什么”的,从而为了达到目的而使用不同的方法。
从传统面向对象的编程角度出发,相对于OOP,面向AOP更具有可拓展性和高维护性的优势。具体表现在:以往我们都以“世界万物皆对象”的思想进行编程时,会将一切事物抽象成一个实体,并使用这个实体进行我们业务方面的拓展。当然,这样做是不错的,但是带来了问题!比如说,当我们抽象出来的一个实体不再是一个具体的实物,而是可分为多个抽象实物的统一点时,那么之前对于该实体进行的一切程序开发都需要进行维护和拓展,从而增加了维护成本。
而AOPer崇尚面向方面编程,即将一切实物都抽象的看做是多个实体的抽象体,而每个不同类型的抽象体都能够作为这个实物的一种实现机制的表现,从而在业务拓展时减少对原有代码的维护,取而代之的则是 增加->切换 的操作。
-------------
IOC,名为对象控制反转,简单的可以理解为AOP概念的一个功能实现。主要运用在对象中!
当你将面向对象理解的比较深入的时候,就可以这样理解IOC了:
当你需要敲碎一块石头时,你将怎么做,分别说明这个过程?
我可以给你的答案是:
1、我可以用槌子来敲碎石头
2、我可以用碎石机来敲碎石头
3、我可以找别人来帮忙敲碎石头
然后分析这个需求。主体是“我”,动作是“敲”。这里的IOC主要是用来控制“用什么”的,从而为了达到目的而使用不同的方法。
参考资料: http://zhidao.baidu.com/question/321292481.html?oldq=1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询