1、前置条件
1、1接口
interface Animal {
void eat();
}
1、2两个实现类
class Dog implements Animal {
public void eat() {
System.out.println("Dog eat");
}
}
class Cat implements Animal {
public void eat() {
System.out.println("Cat eat");
}
}
2、最原始的实现方式
class AnimalFactory {
public static Animal create(Class<? extends Animal> clz) {
try {
return clz.newInstance();
} catch (InstantiationException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return null;
}
}
3、使用枚举实现方式一
enum AnimalFactory2 {
Dog, Cat;
public Animal create() {
switch (this) {
case Dog:
return new Dog();
case Cat:
return new Cat();
default:
throw new AssertionError("错误");
}
}
}
4、使用枚举实现方式二
enum AnimalFactory3 {
Dog {
@Override
public Animal create() {
return new Dog();
}
},
Cat {
@Override
public Animal create() {
return new Cat();
}
};
public abstract Animal create();
}
本文介绍了使用Java实现动物接口的多种方式,包括通过原始工厂模式创建实例及利用枚举特性进行实例化的方法。探讨了不同实现方式的优缺点。
151

被折叠的 条评论
为什么被折叠?



