zoukankan      html  css  js  c++  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;
        }
    }

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

  • 相关阅读:
    QML类型说明-ParallelAnimation
    QML基本可视化元素--Text
    qml学习笔记(二):可视化元素基类Item详解(上半场anchors等等)
    JavaScript toFixed() 方法
    FM/AM收音机原理
    Q_INVOKABLE与invokeMethod用法全解
    SQL问题(面试题)
    数组、List和ArrayList的区别
    catch/finally中不应使用 writer.flush()
    Spring AOP整理
  • 原文地址:https://www.cnblogs.com/mrdoor/p/4068815.html
Copyright © 2011-2022 走看看