說明:什麼使用我們可以使用抽象Factory 方法?怎麼使用抽象Factory 方法
應用情境:當我們建立的兩個類之間有組合關係的時候,比如說學校、老師、學生。這那個之間的關係是:學校可以使一中、二中、三中。老師可以是一中老師、二中老師。同樣,學生也可以使一中學生,二中學生。如果以後多一個三中的話,還有三中老師,三中學生。
定義:
老師類:
學生類:
一中
一中老師
一中學生
二中
二中老師
二中學生
學校工廠類(可以生產一中、二中)
具體實現:
public class Student { public void showStudent(){ System.out.println("student..."); } }public class Teacher { public void showTeacher(){ System.out.println("teacher..."); } }
public class StudentFactory {public static Student getStudent(){return new Student();}}public class TeacherFactory {public static Teacher getTeacher(){return new Teacher();}}public interface AbstractoFactor {Student getStudent();Teacher getTeacher();}
public interface ISchool {public abstract Student getStudent();public abstract Teacher getTeacher();}public class OneSchool implements AbstractoFactor, ISchool {public Student getStudent() {System.out.println("建立一中學生");return StudentFactory.getStudent();}public Teacher getTeacher() {System.out.println("建立一中老師");return TeacherFactory.getTeacher();}}public class ThreeSchool implements AbstractoFactor {public Student getStudent() {System.out.println("建立三中學生");return StudentFactory.getStudent();}public Teacher getTeacher() {System.out.println("建立三中老師");return TeacherFactory.getTeacher();}}public class TwoSchool implements AbstractoFactor {public Student getStudent() {System.out.println("建立二中學生");return StudentFactory.getStudent();}public Teacher getTeacher() {System.out.println("建立二中老師");return TeacherFactory.getTeacher();}}