工厂模式:就是在子类和接口之间加了一个过渡,这个过渡就是工厂类,在工厂类的方法中输入入参,入参就是你想要实例化的类名,这样即可获得相应类实例化.这样如果以后还要扩充实现此接口的子类,直接修改工厂类就可标记得到相应的类实例,增加了程序的灵活性.
动物接口
public interface Animal {
public void say();
}
实现动物接口的dog类
public class Dog implements Animal{
public void say(){
System.out.println("dog");
}
}
工厂类
public class JavaFactory {
public static Object getInstance(Class clas){
Object obj=null;
try {
Class cla=Class.forName(clas.getName());
try {
obj=cla.newInstance();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return obj;
}
}
测试类
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Animal animal=(Animal) JavaFactory.getInstance(Dog.class);
animal.say();
}
}