欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java学习之:使用反射实现工厂设计模式

程序员文章站 2022-03-09 21:53:38
...

1.传统工厂模式的缺点

在多增加一个产品类时需要修改工厂类,违背了开闭原则(OCP);
为了改善这一缺陷,我们引出使用反射实现工厂设计模式

2.使用反射实现的工厂设计模式的优点

1.不违背开闭原则
2.代码实用性性强

3.实现代码

工厂类实现

interface IFruit{
    void eat();
}
class Apple implements IFruit {

    @Override
    public void eat() {
        System.out.println("eat apple");
    }
}
class Orange implements IFruit {

    @Override
    public void eat() {
        System.out.println("eat orange");
    }
}

class FruitFactory{
    public static IFruit getInstance(String fruitName) {
        IFruit fruit =null;    //2.声明fruit,为4实例化对象做准备
        try {
            Class cls = Class.forName(fruitName);    //3.取得类的全限定名
            try {
                fruit = (IFruit) cls.newInstance();    //4.根据类名称实例化相应对象
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            } catch (InstantiationException e) {
                e.printStackTrace();
            }
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        return null;
    }
}

测试用例

public class Test {
    public static void main(String[] args) throws Exception {
        IFruit fruit = FruitFactory.getInstance("apple");    //1.传入类名称
        fruit.eat();
    }
}
相关标签: Java