zoukankan      html  css  js  c++  java
  • 课时2:解耦合发展史、控制反转、依赖注入

    .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获取容器中的对象

  • 相关阅读:
    POJ 1966 Cable TV Network
    POJ 3204 Ikki's Story I
    Codeforces Round #388 (Div. 2)
    BZOJ 后缀自动机四·重复旋律7
    扩展欧几里得 exGCD
    网络流模板 NetworkFlow
    BZOJ 2002: [Hnoi2010]Bounce 弹飞绵羊
    BZOJ 3224: Tyvj 1728 普通平衡树
    BZOJ 1070: [SCOI2007]修车
    BZOJ 4552: [Tjoi2016&Heoi2016]排序
  • 原文地址:https://www.cnblogs.com/thisHBZ/p/12484329.html
Copyright © 2011-2022 走看看