验证中...
开源中国 2018 年度最后一场技术盛会邀你来约~错过就要等明年啦!点此立即预约
语言: Java
分类: 编程语言基础
最后更新于 2018-12-09 10:08
工厂模式
原始数据 复制代码
public class ClassDemo {
public static void main(String[] args) {
Fruit fruit = Factory.getInstance("cn.wyp.reflect.Apple",Fruit.class);
fruit.eat();
}
}
class Factory{
private Factory(){}
//cls参数仅用于标识是那个接口的子类
public static <T> T getInstance(String className,Class<T> cls){
T c = null;
try {
//注:此时的缺点:只能调用无参构造
c = (T)Class.forName(className).newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return c;
}
}
interface Drink{
public void drink();
}
class Tea implements Drink{
@Override
public void drink() {
System.out.println("喝茶");
}
}
class Cola implements Drink{
@Override
public void drink() {
System.out.println("喝可乐");
}
}
interface Fruit{
public void eat();
}
class Apple implements Fruit{
@Override
public void eat() {
System.out.println("吃苹果");
}
}
class Orange implements Fruit{
@Override
public void eat() {
System.out.println("吃橘子");
}
}

评论列表( 0 )

你可以在登录后,发表评论

搜索帮助