软件设计方法及设计模式的发展,共产生了3种类调用的方法:自己创建、工厂模式、外部注入,我们可以用3个形象的动词来分别表示它们,就是new、get、set,下面用实例来解释这三种方法
首先
IBook.java-----Book接口类
Book1.java-----Book1实现类
Book2.java-----Book2实现类
public interface IBook {
public void learn();
}
public class Book1 implements IBook {
public void learn() {
System.out.println("成功学习Book1");
}
}
public class Book2 implements IBook {
public void learn() {
System.out.println("成功学习Book2");
}
}
一、自己创建new
public class Student1 {
public void learnBook1(){
IBook book1 = new Book1();
book1.learn();
}
public void learnBook2(){
IBook book2 = new Book2();
book2.learn();
}
}
二、工厂模式get
public class Factory {
public static IBook getBook1(){
IBook book = new Book1();
return book;
}
public static IBook getBook2(){
IBook book = new Book2();
return book;
}
}
public class Student2 {
public void learnBook1(){
IBook book = Factory.getBook1();
book.learn();
}
public void learnBook2(){
IBook book = Factory.getBook2();
book.learn();
}
}
三、外部注入set
public class Student3 {
public void learnBook(IBook book){
book.learn();
}
}
最后,用Test类进行测试
import org.junit.Test;
public class Test_1_19 {
@Test
public void test1(){
Student1 stu = new Student1();
stu.learnBook1();
stu.learnBook2();
}
@Test
public void test2(){
Student2 stu = new Student2();
stu.learnBook1();
stu.learnBook2();
}
@Test
public void test3(){
Student3 stu = new Student3();
IBook book1 = new Book1();
IBook book2 = new Book2();
stu.learnBook(book1);
stu.learnBook(book2);
}
}