创建型模式(二):AbstractFactory ( 抽象工厂 )

核心工厂类不再负责所有产品的创建,而是将具体创建的工作交给子类去做,成为一个抽象工厂角色,仅负责给出具体工厂类必须实现的接口,而不接触哪一个产品类应当被实例化这种细节。

例子:请MM去麦当劳吃汉堡,不同的MM有不同的口味,要每个都记住是一件烦人的事情,我一般采用Factory Method模式,带着MM到服务员那儿,说“要一个汉堡”,具体要什么样的汉堡呢,让MM直接跟服务员说就行了。

 1 interface Sample{
2 public void say();
3 }
4
5 class SampleA implements Sample{
6 public void say(){
7 System.out.println("SampleA");
8 }
9 }
10
11 class SampleB implements Sample{
12 public void say(){
13 System.out.println("SampleB");
14 }
15 }
16 abstract class Factory{
17 public abstract Sample create();
18 }
19
20 class FactoryA extends Factory{
21 public Sample create(){
22 return new SampleA();
23 }
24 }
25
26 class FactoryB extends Factory{
27 public Sample create(){
28 return new SampleB();
29 }
30 }
31
32 public class Test {
33 public static void main(String[] args) {
34 Factory factoryA =new FactoryA();
35 Sample test1=factoryA.create();
36 test1.say();
37 Factory factoryB=new FactoryB();
38 Sample test2=factoryB.create();
39 test2.say();
40 }
41 }




你可能感兴趣的:(abstract)