反射與工廠設計模式

package cn.yhy.demo;
interface IFruit{
	public void eat();
}
class Apple implements IFruit {

	@Override
	public void eat() {
		// TODO Auto-generated method stub
		System.out.println("【Apple】吃蘋果。");
	}
}
interface IMessage{
	public void print();
}
class MessageImpl implements IMessage{

	@Override
	public void print() {
		// TODO Auto-generated method stub
		System.out.println("yyyyyyyy");
	}
	
}
class Factory{
	private Factory() {}
	@SuppressWarnings({ "deprecation", "unchecked" })
	public static <T> T getInstance(String className) {
		T obj = null;
		try {
			obj = (T) Class.forName(className).newInstance();
		} catch (Exception e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return obj;
	}
}
public class TextDemo {
	public static void main(String args[]) throws Exception {
		IFruit fruit = Factory.getInstance("cn.yhy.demo.Apple");
		fruit.eat();
		IMessage msg = Factory.getInstance("cn.yhy.demo.MessageImpl");
		msg.print();
	}
}
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章