本文介绍反射机制和工厂设计模式结合使用、不了解工厂模式的可以去看看(23种设计模式—之简单工厂模式)
1.Furit接口
package factory.com.util;
public interface Furit {
public void toEat();
}
2.Banana类
package factory.com.util;
public class Banana implements Furit{
public void toEat(){
System.out.println("吃香蕉!!");
}
}
3.Apple类
package factory.com.util;
public class Apple implements Furit {
public void toEat(){
System.out.println("吃苹果!");
}
}
4.Factory类
package factory.com.util;
public class Factory {
public static Furit getFurit(String className){
Furit furit = null;
try {
//相当创建对象 这就是反射机制
furit = (Furit) Class.forName(className).newInstance();
}catch (Exception e) {
e.printStackTrace();
}
return furit;
}
}
5.测试类
package factory.com.util;
public class Test {
public static void main(String[] args) {
/*
* 工厂设计模式[]
* 如果添加一个子类,只需要继承父类接口
* 再改需要改这里的实力类,就ok了
*
* */
Furit fu= Factory.getFurit("factory.com.util.Apple");
fu.toEat();
}
}
6.添加一个 Orange 子类
package factory.com.util;
public class Orange implements Furit {
@Override
public void toEat() {
// TODO Auto-generated method stub
System.out.println("吃橙子!");
}
}
看看这篇
23种设计模式—之简单工厂模式(http://blog.csdn.net/javawebrookie/article/details/49682021)