原来来自www.toutiao.com/i6760107693…
一、抽象工厂模式的定义
抽象工厂模式是提供一组创建相关联的产品簇的一种方法模式。是对工厂方法模式的一种改进,工厂方法模式中一个具体工厂只能创建一种产品,在有些场景下显得比较繁琐,抽象工厂模式为解决这一问题而存在。
二、抽象工厂模式的实现
抽象工厂模式的实现过程与工厂方法模式很相似,不同的是工厂中提供了多种创建方法
创建的步骤请参照工厂方法模式,在此给一个实例说明;
① 定义抽象工厂
public interface Factory
{
/**
* 创建销售
* @return
*/
Employee createSaler();
/**
* 创建程序员
* @return
*/
public Employee createProgrammer();
}
② 实现抽象工厂
public class AbstratoryFactory implements Factory{
private AbstratoryFactory(){}
/**
* 创建销售
* @return
*/
@Override
public Employee createSaler(){
return new Saler();
}
/**
* 创建程序员
* @return
*/
@Override
public Employee createProgrammer(){
//也是初始化一些参数
return new Programmer();
}
}
③ 定义抽象实例
public abstract class Employee {
private int id;
private String name;
public abstract void action();
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
④ 实现抽象实例
⑤ public class Programmer extends Employee {
@Override
public void action() {
System.out.println(getName() + "苦逼的程序员正在写bug~");
}
}
public class Saler extends Employee {
@Override
public void action() {
System.out.println(getName() + "我正在与客户沟通~~");
}
}