package abstractfactory;
// 接口 A
interface ProductA {
void sayHello(String name);
}
// 类的具体的实现 一
class ProductA1 implements ProductA {
public void sayHello(String name) {
System.out.println("hello : " + name);
}
}
// 类的实现 二
class ProductA2 implements ProductA {
public void sayHello(String name) {
System.out.println("hello : " + name);
}
}
//接口 B
interface ProductB {
...........
}
// 类的具体的实现一
class ProductB1 implements ProductB {
..........
}
// 类的具体的实现二
class ProductB2 implements ProductB {
...........
}
// 返回对象实例 的接口
interface Creator {
public ProductA factoryA();
public ProductB factoryB();
}
// 抽象工厂的接口具体的实现 一
class Creator1 implements Creator {
public ProductA factoryA() {
return new ProductA1();
}
public ProductB factoryB() {
return new ProductB1();
}
}
// 抽象工厂的具体实现 二
class Creator2 implements Creator {
public ProductA factoryA() {
return new ProductA2();
}
public ProductB factoryB() {
return new ProductB2();
}
}
// 测试方法
public class Test {
public static void main(String[] args) {
ProductA pa;
ProductB pb;
Creator1 creator1 = new Creator1();
pa = creator1.factoryA();
pa.sayHello("张迪");
}
}