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日志
下一篇: linux 下时间相关的结构体定义及函数