抽象工厂模式

153 阅读1分钟

原来来自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() + "我正在与客户沟通~~");
    }
}