您的位置:首页 > 编程语言 > Java开发

java工厂模式的三种方式

2014-03-09 22:00 453 查看
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 enum