第二周学习周报

//课程

public interface ICourse {

void learn();//学习。。。

}

//Java课程

public class JavaCourse implements ICourse{

@Override

public void learn() {

System.out.println("学习java。。。");

}

}

//Html课程

public class HtmlCourse implements ICourse{

@Override

public void learn() {

// TODO Auto-generated method stub

System.out.println("学习Html");

}

}

public class Student {

//学习java课程

public void learnJava() {

ICourse course = new JavaCourse();

course.learn();

}

//学习HtmlCourse课程

public void learnHtml() {

ICourse course = new HtmlCourse();

course.learn();

}

public static void learnCourse() {

Student student = new Student();

student.learnHtml();

student.learnJava();

}

public static void main(String[] args) {

learnCourse();

}

}

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

//课程工厂

public class CourseFactory {

//根据名字获取课程

      public static ICourse getCourse(String name) {

      if(name.equals("java")) {

      return new JavaCourse();

      }

      else {

      return new HtmlCourse();

      }

      }

}

public class Student

{

//学习java课程

public void learnJava() {

ICourse course = new JavaCourse();

course.learn();

}

//学习HtmlCourse课程

public void learnHtml() {

ICourse course = new HtmlCourse();

course.learn();

}

public void learn(String name) {

ICourse course = CourseFactory.getCourse(name);

//course就是根据name拿到的相应的课程

course.learn();

}

public static void learnCourse() {

Student student = new Student();

student.learnHtml();

student.learnJava();

}

public static void learnCourseWithFactory() {

Student student = new Student();

student.learn("java");

}

public static void main(String[] args) {

//learnCourse();

learnCourseWithFactory();

}

}

Spring


IOC(控制反转)也可以称之为DI(依赖注入):

控制反转:将创建对象,属性值的方式进行了翻转,从new,setXXX()翻转为了从springIOC容器getBean()

依赖注入:将属性值注入给了属性,将属性注入给了bean,将bean注入给了ioc容器;    

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

因此以后的ioc分为两步。1.先给springioc中存放对象并赋值  2.拿


你可能感兴趣的:(第二周学习周报)