简单工厂模式
定义:就是建立一个工厂类,对实现了同一接口的一些类进行实例的创建。简单工厂模式的实质是由一个工厂类根据传入的参数,动态决定应该创建哪一个产品类(这些产品类继承自一个父类或接口)的实例。
简单工厂的使用
public interface Human {
void say();
}
public class Man implements Human {
@Override
public void say() {
System.out.println("男人");
}
}
public class Woman implements Human {
@Override
public void say() {
System.out.println("女人");
}
}
public class SimpleFactory {
public static Human makeHuman(Class clz) {
Human human = null;
try {
Class<?> aClass = Class.forName(clz.getName());
human = (Human) aClass.newInstance();
} catch (InstantiationException e) {
System.out.println("不支持抽象类或接口");
e.printStackTrace();
} catch (IllegalAccessException e) {
System.out.println("没有足够权限,即不能访问私有对象");
e.printStackTrace();
} catch (ClassNotFoundException e) {
System.out.println("类不存在");
e.printStackTrace();
}
return human;
}
}
public class SimpleFactoryPattern {
public static void main(String[] args) {
Human man = SimpleFactory.makeHuman(Man.class);
man.say();
Human woman = SimpleFactory.makeHuman(Woman.class);
woman.say();
}
}
输出:
男人
女人