抽象工厂模式适用于一个产品组,其由一组产品组成,例如:电脑是由多个组件构成,CPU,主板等,那么电脑是一个工厂类,里面是一组组件。如下示例
public interface Computer {
CPU createCPU();
MainBoard createMainBoard();
}
//电脑类中组装组件,也就是创建相应的对象
class Computer1 implements Computer{
@Override
public CPU createCPU() {
return new CPU1();
}
@Override
public MainBoard createMainBoard() {
return new MainBoard1();
}
}
class Computer2 implements Computer{
@Override
public CPU createCPU() {
return new CPU2();
}
@Override
public MainBoard createMainBoard() {
return new MainBoard2();
}
}
这是组件类
public interface CPU {
public void run();
}
class CPU1 implements CPU{
@Override
public void run() {
System.out.println("cpu1...........");
}
}
class CPU2 implements CPU{
@Override
public void run() {
System.out.println("cpu2............");
}
}
public interface MainBoard {
public void start();
}
class MainBoard1 implements MainBoard{
@Override
public void start() {
System.out.println("mainboard1.................");
}
}
class MainBoard2 implements MainBoard{
@Override
public void start() {
System.out.println("mainboard2.................");
}
}
抽象工厂模式比较复杂,适用于大型项目。在实际应用中很少,大多用的还是简单工厂模式,工厂模式使用的也比较少。