提供一个接口,用于创建相关的对象家族。
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();
}
}
原文:https://www.cnblogs.com/Akatsuki-Sanjou/p/12749100.html