【Java之路】设计方法之抽象工厂

提供一个接口,用于创建相关的对象家族

class AbstractProductA { }
class AbstractProductB { }
class ProductA1 extends AbstractProductA { }
class ProductA2 extends AbstractProductA { }
class ProductB1 extends AbstractProductB { }
class ProductB2 extends AbstractProductB { }

abstract class AbstractFactory {
    abstract AbstractProductA createProductA();
    abstract AbstractProductB createProductB();
}

class ConcreteFactory1 extends Factory {
    AbstractProductA createProductA() {
        return new ProductA1();
    }

    AbstractProductB createProductB() {
        return new ProductA2();
    }
}

class ConcreteFactory2 extends Factory {
    AbstractProductA createProductA() {
        return new ProductA1();
    }

    AbstractProductB createProductB() {
        return new ProductA2();
    }
}

public class Client {
    public static void main(String[] args) {
        AbstractFactory abstractFactory = new ConcreteFactory1();
        AbstractProductA productA = abstractFactory.createProductA();
        AbstractProductB productB = abstractFactory.createProductB();
    }
}
posted @ 2020-04-22 00:06  アカツキ  阅读(100)  评论(0编辑  收藏  举报