抽象工廠模式(Abstract Factory):
提供一個創建一系列相關或相互依賴對象的接口,而無需指定它們具體的類。
public interface Person{
}
public class Student implements Person{
}
public class Teacher implements Person{
}
abstract class PersonFactory{
abstract Person producePerson();
public static PersonFactory getInstance(String classname) {
PersonFactory personFactory = null;
try {
personFactory = (PersonFactory) Class.forName(classname).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return personFactory ;
}
}
public class StudentFactory extends PersonFactory {
@Override
public Person producePerson() {
return new Student();
}
}
public class TeacherFactory extends PersonFactory {
@Override
public Person producePerson() {
return new Teacher();
}
}
public class AbstractFactory{
public static void main(String args[])throws Exception{
Properties p = new Properties();
p.load(new FileInputStream("1.properties"));
String str = p.getProperty("Student");
Person p = PersonFactory.getInstance(str);
p.producePerson();
}
}
-------------------------------------------------------------------------------
1.properties代碼:
Student=com.factory.abstract.Student
Teacher=com.factory.abstract.Teacher
上面就介紹完了抽象工廠模式,下期預告,單例模式