当前位置:阳光沙滩 >Java > 查看文章
阿里云优惠码

 

 

1.反射在工厂设计模式中的应用

没用之前是这样的哦:

public class Demo{
	public static void main(String[] args){
		HowToEat hte = Factory.getInstance("Apple");
		hte.eat();
	}
}

//定义一个如何吃的接口,不同的水果有不同的吃法嘛,嘻嘻。

interface HowToEat{
	public void eat();
}

//定义苹果类,实现吃的方法

class Apple implements HowToEat{
	public void eat(){
		System.out.println("吃苹果");
	}
}

//定义榴莲类,实现吃的方法

class Durian implements HowToEat{
	public void eat(){
		System.out.println("吃榴莲");
	}
}

//定义工厂
class Factory {
	private String fruit;
	public static HowToEat getInstance(String fruit){
		if("Apple".equals(fruit))
			return new Apple();
		if("Durian".equals(fruit))
			return new Durian();
		return null;
	}
}

 

使用这个反射的方法来实例化对象,那么这就好多了,嘻嘻!

如下:

//定义工厂
class Factory {
	private String className;
	public static HowToEat getInstance(String className){
		HowToEat hte = null;
			try{
				hte =(HowToEat)Class.forName(className).newInstance();//实例化对象,外部指定的名字
			}catch(Exception e){
				throw new RuntimeException("不玩了");
			}
		return hte;
	}
	
}

结果是这样的:

%e6%88%aa%e5%9b%be03

7K
相关文章
为您推荐
各种观点