创建型模式之三:抽象工厂模式

抽象工厂模式在工厂模式上增加一层抽象。如果我们比对抽象工厂与工厂,就会十分明显地发现新增的那层抽象层,抽象工厂是一个创建其他工厂的超级工厂,我们可以称他为“工厂的工厂”

抽象工厂类图

创建型模式之三:抽象工厂模式

抽象工厂Java代码

interface CPU {
 void process();
}
 
interface CPUFactory {
 CPU produceCPU();
}
 
class AMDFactory implements CPUFactory {
 public CPU produceCPU() {
 return new AMDCPU();
 }
}
 
class IntelFactory implements CPUFactory {
 public CPU produceCPU() {
 return new IntelCPU();
 }
}
 
class AMDCPU implements CPU {
 public void process() {
 System.out.println("AMD is processing...");
 }
}
 
class IntelCPU implements CPU {
 public void process() {
 System.out.println("Intel is processing...");
 }
}
 
class Computer {
 CPU cpu;
 
 public Computer(CPUFactory factory) {
 cpu = factory.produceCPU();
 cpu.process();
 }
}
 
public class Client {
 public static void main(String[] args) {
 new Computer(createSpecificFactory());
 }
 
 public static CPUFactory createSpecificFactory() {
 int sys = 0; // based on specific requirement
 if (sys == 0) 
 return new AMDFactory();
 else 
 return new IntelFactory();
 }
}

真实应用

实际上,抽象工厂是对于现代框架来说是一个重要的概念, 这里是一个关于他的问题。 以上文章翻译自: http://www.programcreek.com/2013/02/java-design-pattern-abstract-factory/

你可能感兴趣的:(设计模式)