1 public class Test {
2 public static void main(String[] args){
3 Creator ca=new ConcreteCreatorA();
4 ca.create().doSth();
5 Creator cb=new ConcreteCreatorB();
6 cb.create().doSth();
7 }
8 }
9 interface Creator{
10 Product create();
11 }
12 class ConcreteCreatorA implements Creator{
13 @Override
14 public Product create() {
15 return new ConcreteProductA();
16 }
17 }
18 class ConcreteCreatorB implements Creator{
19 @Override
20 public Product create() {
21 return new ConcreteProductB();
22 }
23 }
24 interface Product{
25 void doSth();
26 }
27 class ConcreteProductA implements Product{
28
29 public ConcreteProductA(){
30 System.out.println("Product A has been created.");
31 }
32 @Override
33 public void doSth() {
34 System.out.println("Product A is working……");
35 }
36 }
37 class ConcreteProductB implements Product{
38 public ConcreteProductB(){
39 System.out.println("Product B has been created.");
40 }
41 @Override
42 public void doSth() {
43 System.out.println("Product B is working……");
44 }
45 }