反射机制和工厂设计模式结合使用
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("吃橙子!");
}
}
看看这篇
本文介绍了工厂设计模式的实现方式,并结合反射机制优化对象创建过程。通过实例演示了如何通过反射机制动态创建不同类型的Fruit对象,如Apple、Banana、Orange等,展示了工厂模式的灵活性和反射机制在对象创建中的应用。文章还提供了进一步阅读链接,帮助理解工厂设计模式及Java反射机制。
606

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



