//CPU工厂接口
public interface CPUFactory {
public void createCPU();
}
//IntelCPU工厂
public class IntelCPU implements CPUFactory {
@Override
public void createCPU() {
System.out.println("Intel CPU");
}
}
//AMDCPU工厂
public class AMDCPU implements CPUFactory {
@Override
public void createCPU() {
System.out.println("AMD CPU");
}
}
//创建抽象工厂类接口
public interface Provider {
public CPUFactory createCPUFactory();
}
public class InterCPUFactory implements Provider {
@Override
public CPUFactory createCPUFactory() {
return new InterCPU();
}
}
public class AMDCPUFactory implements Provider {
@Override
public CPUFactory createCPUFactory() {
return new AMDCPU();
}
}
public static void main(String[] args) {
//创建一个生产CPU工厂的工厂
Provider cpufactory = new InterCPUFactory();
//通过CPU工厂的工厂创建一个IntelCPU工厂
CPUFactory intelcpu = cpufactory.createCPUFactory();
//IntelCPU工厂生产intelCPU
intelcpu.createCPU();
}
package com.qbz.test;
//汽车工厂
interface CarFactory {
void productCar();
}
// 抽象工厂,汽车工厂的工厂
interface Provider {
CarFactory creatCarFactory();
}
// 保时捷工厂
class PorscheFactory implements CarFactory {
@Override
public void productCar() {
System.out.println("生产保时捷汽车");
}
}
// 拖拉机工厂
class TractorFactory implements CarFactory {
@Override
public void productCar() {
System.out.println("生产拖拉机");
}
}
// 生产保时捷工厂的工厂
class SuperPorscheFactory implements Provider {
@Override
public CarFactory creatCarFactory() {
return new PorscheFactory();
}
}
// 补全 生产拖拉机工厂的工厂
class SuperTractorFactory implements Provider {
@Override
public CarFactory creatCarFactory() {
return new TractorFactory();
}
}
public class AbstractFactory {
public static void main(String[] args) {
// 创建一个生产保时捷工厂的工厂
Provider cf = new SuperPorscheFactory();
// 生产保时捷工厂
CarFactory pf = cf.creatCarFactory();
// 保时捷工厂生产保时捷汽车
pf.productCar();
// 创建一个生产拖拉机工厂的工厂
Provider tr = new SuperTractorFactory();
// 生产拖拉机工厂
CarFactory tf = tr.creatCarFactory();
// 拖拉机工厂生产拖拉机
tf.productCar();
}
}
生产保时捷汽车
生产拖拉机