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;
        }
    }

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

  • 相关阅读:
    [20170706]SQL Server事务复制订阅端,job不小心被删,修复
    [20170629]带过滤的复制项UI操作导致订阅全部初始化问题
    自动创建数据库镜像,证书交换
    “RESOURCE MONITOR“CPU占用特别高
    索引视图导致死锁
    Percona TokuDB
    从MySQL 5.5迁移到Mariadb 10.1.14
    SQL Server 2014新特性:其他
    SQL Server 2014新特性:分区索引重建
    SQL Server 2012 新特性:其他
  • 原文地址:https://www.cnblogs.com/mrdoor/p/4068815.html
Copyright © 2011-2022 走看看