public class Main{
public static void main(String args[]){
Fruit f = FruitFactory.APPLE.getInstance();
Fruit f1 = FruitFactory.ORANGE.getInstance();
f.eat(); //吃苹果
f1.eat(); //吃橘子
}
}
interface Fruit{
public abstract void eat();
}
class Apple implements Fruit{
@Override
public void eat() {
System.out.println("吃苹果");
}
}
class Orange implements Fruit{
public void eat(){
System.out.println("吃橘子");
}
}
enum FruitFactory{
ORANGE,APPLE;
public Fruit getInstance(){
switch (this){
case ORANGE:
return new Orange();
case APPLE:
return new Apple();
default:
throw new RuntimeException("参数不是指定类型");
}
}
}