ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

课时2:解耦合发展史、控制反转、依赖注入

2020-03-13 09:01:59  阅读:222  来源: 互联网

标签:容器 发展史 name Course 课时 course 耦合 new ioc


.1)SpringIOC的发展史

  1.刚开始的的new对象 太零散了 后期维护比较脑火

public void doJava(){
        Course course=new CourseJava();
        course.javaCourse();
    }

    public void doHtml(){
        Course course=new CourseHtml();
        course.htmlCourse();
    }

  2.太零散了 改进 通过简单工厂创建对象

   public static Course getCourse(String name){
            if ("html".equals(name)){
                return new CourseHtml();
            }else{
                return new CourseJava();
            }
        }

    2.1 通过简单工厂,可以将创建课程集中操作,方便后期维护

  3.但是简单工厂还是有弊端 之后衍生出了springIOC

    3.1 springIOC是一个超级工厂

      3.1.1 可以容纳任何对象

.2)控制反转

  1.反转的是:获取对象的方式

context.getBean("student");

    1.1 直接从springIOC容器中拿(ApplicationContext.xml)

  2.为了更加清晰的理解ioc,ioc在一次大会上更名为DI(依赖注入)

.3)DI(依赖注入) 和控制反转是一样的 只是改了名

  1.将属性值 注入给了属性 ,将属性 注入给了bean ,将bean注入给了ioc容器

  2.总结:ioc/di ,无论要什么对象,都可以直接去springioc容器中获取,而不需要自己操作(new /setXXX)

  3.因此之后的ioc分为2步:1 先给springioc中存放对象并赋值(相当于共产主义) 2 去容器中取

  4.改造自己编写的简单工厂

public void courseShow(String name){
        ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
        Course course =(Course) context.getBean(name);
        course.show();
    }

    4.1 name就是容器中的id 通过id获取容器中的对象

标签:容器,发展史,name,Course,课时,course,耦合,new,ioc
来源: https://www.cnblogs.com/thisHBZ/p/12484329.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有