java设计模式(6)---抽象工厂模式

抽象工厂模式是在工厂模式的基础上增加的一层抽象概念。如果比较抽象工厂模式和工厂模式,我们不难发现前者只是增加了一层抽象的概念。抽象工厂是一个父类工厂,可以创建其它工厂类。故我们也叫它“工厂的工厂”。


这里举一个生产CPU的例子:

public interface CPU {

void process();

}


AMD的CPU:

public class AMDCPU implements CPU{


@Override

public void process() {

// TODO Auto-generated method stub

System.out.println("AMD is processing...");

}

}


Intel的cpu:

public class IntelCPU implements CPU{


@Override

public void process() {

// TODO Auto-generated method stub

System.out.println("Intel is processing...");

}

}


建立抽象工厂类:

public interface CPUFactory {

CPU produceCPU();

}


AMD的工厂:

public class AMDFactory implements CPUFactory{


public CPU produceCPU(){

return new AMDCPU();

}

}


Intel的工厂:

public class IntelFactory implements CPUFactory {


@Override

public CPU produceCPU() {

// TODO Auto-generated method stub

return new IntelCPU();

}

}


写一个具体的电脑:

public class Computer {


CPU cpu;

public Computer(CPUFactory f){

cpu = f.produceCPU();

cpu.process();

}

}


最后是主方法:

public class Client {


public static void main(String[] args) {

new Computer(createSpecificFactory());

}


public static CPUFactory createSpecificFactory() {

Random r = new Random();

int sys = r.nextInt(2);

if (sys == 0) {

return new AMDFactory();

} else {

return new IntelFactory();

}

}

}







你可能感兴趣的:(java设计模式(6)---抽象工厂模式)