通过Java反射完成简单工厂模式

以前创建对象工厂时是直接使用new关键字创建了对象,然后对其进行返回,现在看到Java反射之后想用Java的反射来实现一下首先先回顾一下什么是简单工厂模式
简单工厂模式:对实现了同一接口的类进行实例的创建,具体创建的对象为哪个类由调用者自己传递进来此处还是以我们熟悉的动物类为列进行演示

简单工厂模式示意图:

通过Java反射完成简单工厂模式
现在我们要实现的就是使用反射来重新实现当前对象工厂中的createAnimal方法

animal类中的代码如下
通过Java反射完成简单工厂模式

dog类实现animal接口并实现自己的eat方法
通过Java反射完成简单工厂模式对象工厂内的代码(通过反射实现对象的创建并将其返回)
通过Java反射完成简单工厂模式
在测试类中调用对象工厂中的创建对象的方法(需要传入被创建类的Class,这样就实现了由调用者指定创建的对象)
通过Java反射完成简单工厂模式

工厂模式的优点是:对象不需要我们程序员进行创建,我们要做的是调用工厂类生产对象,当后期需要对创建出来的对象进行维护时直接在我们的工厂中修改代码,而不需要我们挨个的找对象来进行代码的修改维护。使用简单工厂模式实现了对象的创建和使用的分离在一定程度上提高了程序的灵活性(松耦合)