设计模式-抽象工厂

目的

提供一个创建一系列相关或相互依赖对象的接口,而无需指定它们具体的类。

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
Sample:
Interface IComputerFactory{
createMouse();
createOS();
};

Class Mouse{};

Class OS{};
//微软鼠标
Class MicrosoftMouse extends Mouse{};

//苹果鼠标
Class AppleMouse extends Mouse{};

//微软系统
Class MicrosoftOS extends OS{};

//苹果系统
Class AppleOS extends OS{};

Class MicrosoftFactory implements IComputerFactory{

Mouse createMouse(){
Return new MicrosoftMouse();//创建相应的鼠标品牌
};

OS createOS();
};



ClassAppleFactory implementsI IComputerFactory{
Mouse createMouse(){
Return new AppleMouse();//创建相应的鼠标品牌
};

OS createOS();
};

Classclient{

//具体工厂的抽象接口作为参数传入
createComputer(ComputerFactory factory){
//动态绑定到具体工厂,具体工厂生产相应的鼠标品牌
Mouse mouse = factory.createMouse();
OS os = factory.createOS();
}
};