抽象工厂模式

作者: 最美时光在路上 | 来源:发表于2016-10-25 23:26 被阅读0次
  1. 抽象工厂类或接口
public interface AbstractFactory {
    public AbstractProductA createProductA();
    public AbstractProductB createProductB();
}
  1. 抽象工厂类或接口实现类
public class ConcreteFactory1 implements AbstractFactory {
    @Override
    public AbstractProductA createProductA() {
        return new ConcreteProductA1();
    }
    @Override
    public AbstractProductB createProductB() {
        return new ConcreteProductB1();
    }
}
public class ConcreteFactory2 implements AbstractFactory {
    @Override
    public AbstractProductA createProductA() {
        return new ConcreteProductA2();
    }
    @Override
    public AbstractProductB createProductB() {
        return new ConcreteProductB2();
    }
}
  1. 抽象产品类或接口
public abstract class AbstractProductA {
    public abstract void doSomething();
}
public abstract class AbstractProductB {
    public abstract void doAnything();
}
  1. 抽象产品类或接口实现类
public class ConcreteProductA1 extends AbstractProductA{
    @Override
    public void doSomething() {
        //具体处理
    }
}
public class ConcreteProductA2 extends AbstractProductA{
    @Override
    public void doSomething() {
        //具体处理
    }
}
public class ConcreteProductB1 extends AbstractProductB {
    @Override
    public void doAnything() {
        //具体处理
    }
}
public class ConcreteProductB2 extends AbstractProductB {
    @Override
    public void doAnything() {
        //具体处理
    }
}
  1. 使用
    AbstractFactory factory1 = new ConcreteFactory1();
    AbstractProductA productA1 = factory1.createProductA();
    AbstractProductB productB1 = factory1.createProductB();
    AbstractFactory factory2 = new ConcreteFactory2();
    AbstractProductA productA2 = factory2.createProductA();
    AbstractProductB productB2 = factory2.createProductB();

相关文章

网友评论

    本文标题:抽象工厂模式

    本文链接:https://www.haomeiwen.com/subject/cjkduttx.html