Android知识

抽象工厂模式

2016-10-25  本文已影响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();
上一篇下一篇

猜你喜欢

热点阅读