笔试面试 下面代码使用了哪种设计模式() interface AbstractProductA { void operationA(); } class ConcreteProductA1 implements AbstractProductA { public void operationA() { System.out.println(“ConcreteProductA1 operationA”); } } class ConcreteProductA2 implements AbstractProductA { public void operationA() { System.out.println(“ConcreteProductA2 operationA”); } } interface AbstractProductB { void operationB(); } class ConcreteProductB1 implements AbstractProductB { public void operationB() { System.out.println(“ConcreteProductB1 operationB”); } } class ConcreteProductB2 implements AbstractProductB { public void operationB() { System.out.println(“ConcreteProductB2 operationB”); } } interface AbstractFact { AbstractProductA createProductA(); AbstractProductB createProductB(); } class ConcreteFact1 implements AbstractFact { public AbstractProductA createProductA() { return new ConcreteProductA1(); } public AbstractProductB createProductB() { return new ConcreteProductB1(); } } class ConcreteFact2 implements AbstractFact { public AbstractProductA createProductA() { return new ConcreteProductA2(); } public AbstractProductB createProductB() { return new ConcreteProductB2(); } }