Jquery中文网 www.jquerycn.cn
Jquery中文网 >  脚本编程  >  java  >  正文 我理解的IoC和AOP

我理解的IoC和AOP

发布时间:2018-11-05   编辑:www.jquerycn.cn
jquery中文网为您提供我理解的IoC和AOP 等资源,欢迎您收藏本站,我们将为您提供最新的我理解的IoC和AOP 资源

<span style="FONT-SIZE: 9pt">由于,我自己也只是看过一些这方面的文章,没有实作过,所以在这篇文章里面将不会设计到太多实现上的细节,基本上都是一些概念上和我个人理解的东西。</span>

 

 


<span style="FONT-SIZE: 9pt">这两个概念基本上是一个设计层的概念,主要讲的就是怎么去分离关注,用面向对象的话说,就是怎么把职责进行分离。而这两个模式,我个人认为都有一个共同点,就是变以前的主动为被动,而我认为,这种改变可能也是将来面向对象发展的一个趋势。</span>

 

 


<span style="FONT-SIZE: 9pt">首先说说什么叫主动。写过面向对象程序的人都知道,面向对象与面向过程的区别就是,面向对象是由一大堆对象组成的,对象通过协作完成面向过程中的任务。假设现在有对象A和B,那么当A需要使用B中的方法时,那么在A内部,就会有有一个对B方法的调用,这种调用就称为主动调用。代码大概会如下:</span>

 

 


<span style="FONT-SIZE: 9pt">public class A{</span>

 

 


<span style="FONT-SIZE: 9pt">B b;</span>

 

 


<span style="FONT-SIZE: 9pt">public void methodA(){</span>

 

 


<span style="FONT-SIZE: 9pt">b.methodB();</span>

 

 


<span style="FONT-SIZE: 9pt">}</span>

 

 


<span style="FONT-SIZE: 9pt">}</span>

 

 


<span style="FONT-SIZE: 9pt">这里为了下文解释方便,我增加了一个调用点的定义,调用点就是调用发生的地方。也就是上面</span>

 

 


<span style="FONT-SIZE: 9pt">b.methodB()</span><span style="FONT-SIZE: 9pt">中的b。</span>

 

 


<span style="FONT-SIZE: 9pt">理解了什么叫主动之后,我想就先介绍什么叫IoC。IoC的全称这里就不说了,他的字面意思就是控制反转。在上面的代码当中,由于A调用了B的方法,因此就形成了一个A对B的依赖,这本身并没有什么问题。但是OO的思想是希望我们基于接口编程,而不是基于实现编程。因此,系统设计将不止是原有的A,B,而需要变成IA,IB,A,B,其中IA,IB是接口,A,B是对应的实现类,然后为了使得A中现在对B的实现依赖变成对接口的依赖,代码应该变成这样。</span>

 

 


<span style="FONT-SIZE: 9pt">public class A implements IA{</span>

 

 


<span style="FONT-SIZE: 9pt">IB b;</span>

 

您可能感兴趣的文章:
我理解的IoC和AOP
Spring 学习笔记--强烈推荐
thinkphp中使用AOP切面编程快速验证数据的方法介绍
JNDI 笔记(一) 概述
nutz框架中如何实现登录验证
要成为Java高手需要注意的25个学习目标
C#开源资源
小结.NET中实现AOP开发的七种方法
AOP编程入门--Java篇
Laravel 深入理解控制反转(IoC)和依赖注入(DI)

[关闭]