讲故事,学(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
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
;
// 基于特定要求
if
(sys ==
0
)
return
new
AMDFactory();
else
return
new
IntelFactory();
}
}
3、实例
在当今的架构中,抽象工厂是一个非常重要的概念。StackOverflow上有关于它的一个例题。
0 0
- 讲故事,学(Java)设计模式—抽象工厂模式
- 讲故事,学(Java)设计模式—工厂模式
- 讲故事,学(Java)设计模式—观察者模式
- 讲故事,学(Java)设计模式—观察者模式
- 讲故事,学(Java)设计模式—观察者模式
- 讲故事,学(Java)设计模式—桥接模式
- 讲故事,学(Java)设计模式—桥接模式
- 讲故事,学(Java)设计模式—观察者模式
- 讲故事,学(Java)设计模式—桥接模式
- <Java设计模式>—抽象工厂模式
- 设计模式(JAVA)------抽象工厂模式
- JAVA设计模式(抽象工厂模式)
- 学点设计模式-抽象工厂模式
- Java设计模式—工厂方法模式&抽象工厂模式
- Java设计模式—工厂方法模式&抽象工厂模式
- 设计模式-java工厂模式2(抽象工厂模式)
- java设计模式(二)——抽象工厂模式
- Java设计模式——工厂模式(简单工厂、工厂方法 、抽象工厂 )
- 【Oracle】使用bbed手动提交事务
- This function or variable may be unsafe Consider using xxx instead
- 讲故事,学(Java)设计模式—工厂模式
- MySQL安装
- 方法及Activity调用压出栈过程
- 讲故事,学(Java)设计模式—抽象工厂模式
- hdoj 1022 Train Problem I 【顺序栈】
- 陶喆小16岁未婚妻曝光 皮肤白外型亮丽
- Android中visibility属性
- 二分查找算法
- 推挽输出与开漏输出的区别
- 简单工厂模式(C#)
- JAVA:连接池技术说明以及MVC设计模式理解
- 如何定义好的网盟推广位