抽象工厂模式

作者: 最美时光在路上 | 来源:发表于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