1、抽象工厂方法设计模式:一个抽象产品类,可以派生出多个具体产品类
一个抽象工厂类,可以派生出多个具体工厂类
每个具体工厂类,只能创建一个具体产品类的实例。
2、优缺点:
优点:
客户端不需要在负责对象的创建(不需显示创建具体对象),从而明确了各个类的职责,如果有新的对象增加,只需要增加一个具体的类和具体的工厂类即可,不影响已有的代码,后期维护容易,增强了系统的扩展性
弊端:
书写代码量大了!
3、代码体现:
定义一个抽象工厂类
package Factory;
public abstract class Person {
public abstract void Smoking();
}
创建具体类1
package Factory;
public class Student extends Person{
@Override
public void Smoking() {
System.out.println("学生吸烟");
}
}
创建具体类2
package Factory;
public class Teacher extends Person {
@Override
public void Smoking() {
System.out.println("老师不抽烟");
}
}
定义接口抽象方法
package Factory;
public interface Factory {
public abstract Person creatPerson() ;
}
实现接口抽象方法1
package Factory;
public class StudentFactory implements Factory {
@Override
public Person creatPerson() {
return new Student();
}
}
实现接口抽象方法2
package Factory;
public class TeacherFactory implements Factory {
@Override
public Person creatPerson() {
return new Teacher();
}
}