抽象工厂模式(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
上面就介绍完了抽象工厂模式,下期预告,单例模式