讲故事,学(Java)设计模式—抽象工厂模式

来源:互联网 发布:qmask口罩知乎 编辑:程序博客网 时间:2024/04/20 08:11

讲故事,学(Java)设计模式—抽象工厂模式 


本文由 ImportNew - 汤米猫 翻译自 programcreek。欢迎加入Java小组。转载请参见文章末尾的要求。

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

1、抽象工厂类图

2、抽象工厂Java示例代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
interfaceCPU {
    voidprocess();
}
 
interfaceCPUFactory {
    CPU produceCPU();
}
 
classAMDFactory implementsCPUFactory {
    publicCPU produceCPU() {
        returnnew AMDCPU();
    }
}
 
classIntelFactory implementsCPUFactory {
    publicCPU produceCPU() {
        returnnew IntelCPU();
    }
}
 
classAMDCPU implementsCPU {
    publicvoid process() {
        System.out.println("AMD is processing...");
    }
}
 
classIntelCPU implementsCPU {
    publicvoid process() {
        System.out.println("Intel is processing...");
    }
}
 
classComputer {
    CPU cpu;
 
    publicComputer(CPUFactory factory) {
        cpu = factory.produceCPU();
        cpu.process();
    }
}
 
publicclass Client {
    publicstatic void main(String[] args) {
        newComputer(createSpecificFactory());
    }
 
    publicstatic CPUFactory createSpecificFactory() {
        intsys = 0;// 基于特定要求
        if(sys == 0)
            returnnew AMDFactory();
        else
            returnnew IntelFactory();
    }
}

3、实例

在当今的架构中,抽象工厂是一个非常重要的概念。StackOverflow上有关于它的一个例题。

0 0
原创粉丝点击