一、UML类图
二、代码示例
public class Client {
AbstractFactory factory = new ConcreteFactory();
ProductA productA = factory.createProductA();
ProductB productB = factory.createProductB();
}
public interface ProductA {
}
public interface ProductB {
}
public class ConcreteProductA implements ProductA{
}
public class ConcreteProductB implements ProductB{
}
public interface AbstractFactory {
ProductA createProductA();
ProductB createProductB();
}
public class ConcreteFactory implements AbstractFactory{
@Override
public ProductA createProductA() {
return new ConcreteProductA();
}
@Override
public ProductB createProductB() {
return new ConcreteProductB();
}
}
三、角色介绍
- Client(客户端):
客户端角色,程序的调用者。 - ProductA(抽象产品):
定义的抽象产品A。 - ProductB(抽象产品):
定义的抽象产品B。 - ConcreteProductA(具体产品):
定义的具体产品A。 - ConcreteProductB:
定义的具体产品B。 - AbstractFactory:
负责定义用于生产抽象产品的接口。 - ConcreteFactory:
负责生成具体的产品。