当前位置:天才代写 > tutorial > JAVA 教程 > Spring进修(二) IoC详解

Spring进修(二) IoC详解

2017-11-02 08:00 星期四 所属: JAVA 教程 浏览:762

副标题#e#

上次的博客深入浅出Spring(一)Spring概述中,我给各人简朴先容了一下Spring相关观念。重点是这么一句:Spring是为了办理企业应用开拓的巨大性而建设的一个轻量级的节制反转(IoC)和面向切面(AOP)的容器框架。在这句话中重点有两个,一个是IoC,另一个是AOP。本日我们讲第一个IoC。

IoC观念

节制反转(Inversion of Control)是一个重要的面向工具编程的法例来削减计较机措施的耦合问题。 它尚有一个名字叫做依赖注入(Dependency Injection)。IoC不是什么技能,它是一种设计模式。

实例演示

为了更好的说明IoC,我为各人举一个简朴的例子,如有这样一个描写:某公司新创立了一个项目组,项目组有若干成员和一个项目组长,项目组创立后第一次开会上,作为项目组长的小李凭据老例首先做了简短的自我先容。

按照上述的描写,假如我们写出如下代码和类图:

public class Li {    
        public void introduce() {
            System.out.println("各人好,我是小李");
        }
    }
    public class Team {
        public void firstMeeting() {
            Li li = new Li();
            li.introduce();
        }
    }
详细类图如下:

Spring学习(二) IoC详解

上述的代码,应该说根基完成了相关的需求,可是仔细思量之后就会发明,上述的代码是按照详细的场景描写举办的,并没有举办抽象,这样就导致我们不能机动的布置项目组长去做开场,即按照此刻的代码,开场自我先容被绑定给了小李而不能布置给其他人。为了办理上述的问题,我们引入首先引入Leader接口,相关代码和类图如下:

public interface Leader {
        public void introduce();
    }
    
    public class Li implements Leader {
        @Override
        public void introduce() {
            System.out.println("各人好,我是小李");
        }
    }
    
    public class Team {
        public void firstMeeting() {
            Leader li = new Li();
            li.introduce();
        }
    }

详细类图如下:

Spring学习(二) IoC详解

URL:http://www.bianceng.cn/Programming/Java/201410/45836.htm


#p#副标题#e#

固然上述的代码可以让我们布置给其他成员开场,可是我们可以看出Team类同时依赖Leader接口和Li类,并没有到达我们所期望的Team仅仅依赖于Leader接口的目标,如何办理这个问题呢?虽然是引入Boss,由Boss抉择详细由谁接受项目组长。详细类图和代码如下:

public interface Leader {
        public void introduce();
    }
    
    public class Li implements Leader {
        @Override
        public void introduce() {
            System.out.println("各人好,我是小李");
        }
    }
        
    public class Team {
        public void firstMetting(Leader leader){
            leader.introduce();
        }
    }
        
    public class Boss {
        public void direct(){
            Leader leader = new Li();
            Team team = new Team();
            team.firstMetting(leader);
        }
    }

详细类图如下:

Spring学习(二) IoC详解

通过以上代码和图示,我们可以看出,通过引入老板类,我们将项目小组和详细由谁接受项目组上举办解耦。

对应上述例子,我们再来讲授一下IoC,IoC从字面上看分为节制和反转,节制在上面的实例中就是详细由谁接受项目组长,而反转就是将抉择谁接受项目组长转移到Boss类中。通俗领略就是将接口的详细实现类(Li)的节制权从挪用类(Team)中疏散转交给第三方(Boss)抉择。

到此为止,IoC的观念我们就已经讲完了,详细Spring中如何实现呢?这比及我们之后的针对Spring实例再给各人具体表明。本次各人只要知道IoC相关观念和实现思路即可。

出处:http://www.cnblogs.com/zs234/

 

    关键字:

天才代写-代写联系方式