可以发现, 如果我们一旦新增加一个运算方法,则必须要修改工厂类。 如果此时希望在扩充子类时不用修改工厂类,则必须使用反射完成。
使用该反射工厂类,我们就必须在创建实例时,传入包.类全名称:
以上,我们发现,确实不用再修改工厂类了,但是程序在使用时候,传入完整的"包.类",肯定麻烦,所以,我们通过配置文件的方式来保存这些完整的类路径。
那我们来搞个结合属性文件的工厂模式:
先创建属性文件operation.propertie
然后实现客户端类:
通过这种方法,配置起来反射所需要的包.类全路径就更加方便啦~~~~