您的位置:首页 > 其它

用反射改进工厂模式

2015-12-16 14:20 316 查看
原来的工厂模式代码的局限在于每当我们添加一个接口的子类时,工厂类的代码必须改动,我们可以用反射来改进这一点。代码如下:

package com.test;

interface Fruit{
public void eat();
}

class Apple implements Fruit{
@Override
public void eat() {
System.out.println("eat apple!");
}
}

class Orange implements Fruit{
@Override
public void eat() {
System.out.println("eat orange!");
}
}

class Factory{
public static Fruit getInstance(String name){
Fruit f = null;
try {
Class<?> cls = Class.forName(name);
f = (Fruit)cls.newInstance();
} catch (Exception e) {
e.printStackTrace();
}
return f;
}
}

public class TestDemo {
public static void main(String[] args) {
Fruit f = Factory.getInstance("com.test.Apple");
f.eat();
f = Factory.getInstance("com.test.Orange");
f.eat();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: