public abstract class Fruit {
public abstract void get();
}
public class Apple extends Fruit{
@Override
public void get() {
System.out.println("get apple");
}
}
public class Banana extends Fruit{
@Override
public void get() {
System.out.println("get Banana");
}
}
public abstract class FruitFactory {
public abstract Fruit getFruit();
}
public class AppleFactory extends FruitFactory {
@Override
public Fruit getFruit() {
return new Apple();
}
}
public class BananaFactory extends FruitFactory {
@Override
public Fruit getFruit() {
return new Banana();
}
}
public class MainClass {
public static void main(String args[]) {
// 首先获得苹果工厂
FruitFactory ff1 = new AppleFactory();
// 通过AppleFactory来创建Apple 对象
Fruit apple = ff1.getFruit();
apple.get();
// 首先获得香蕉工厂
FruitFactory ff2 = new BananaFactory();
// 通过BananaFactory来创建Apple 对象
Fruit banana = ff2.getFruit();
banana.get();
}
}