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();
}
}
反射與工廠設計模式
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.