首页 > 代码库 > (转) java 简单工厂模式(实现一个计算器)

(转) java 简单工厂模式(实现一个计算器)

package com.simpleFactory;/** * 运算类 * @author Administrator * */public class Operation {        private double numberA;        private double numberB;        public double getResultValue(){        return 0.0;    }        public double getNumberA() {        return numberA;    }    public void setNumberA(double numberA) {        this.numberA = numberA;    }    public double getNumberB() {        return numberB;    }    public void setNumberB(double numberB) {        this.numberB = numberB;    }                    }
package com.simpleFactory;/** * 加法实现方式 * @author Administrator * */public class Addition extends Operation {        @Override    public double getResultValue() {        return getNumberA() + getNumberB();    }}
package com.simpleFactory;/** * 减法实现方式 * @author Administrator * */public class Subtracter extends Operation {        @Override    public double getResultValue() {        return getNumberA() - getNumberB();    }}
package com.simpleFactory;/** * 简单工厂类 * @author Administrator * */public class SimpleFactory {    private Operation operation;    public Operation factoryOperate (String type ){                if ("+".equals(type)){                        operation = new Addition();        }        else if ("-".equals(type)){                        operation = new Subtracter();        }     return operation;    }}
package com.simpleFactory;/** * 简单工厂类 ,利用反射实现 * @author Administrator * */public class SimpleFactory_reflect {    private Operation operation;    public Operation factoryOperate (String classType ){                 try {        operation = (Operation)Class.forName("com.simpleFactory."+classType).newInstance();        } catch (Exception e) {                        e.printStackTrace();        }             return operation;    }}

重点的是在反射这里,通过反射机制可以不要在增加新功能时修改工厂类,只需要将新的方法函数名加进去就可以了。

(转) java 简单工厂模式(实现一个计算器)