zoukankan      html  css  js  c++  java
  • 简单工厂模式

    public class Main {
        public static void main(String[] args) {
            Factory factory = new Factory();
            Operation operation = factory.createOperate("+");
            operation.setNumberA(10);
            operation.setNumberB(5);
            System.out.println(operation.getResult());
        }
    }
    public class Factory{
        public Operation createOperate(String operate){
            switch (operate){
                case "+":
                    return new Add();
                case "-":
                    return new Sub();
            }
            return null;
        }
    }
    public abstract class Operation {
        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;
        }
    
        private double numberA = 0;
        private double numberB = 0;
    
        public abstract double getResult();
    }
    
    class Add extends Operation {
    
        @Override
        public double getResult() {
            return getNumberA() + getNumberB();
        }
    }
    
    class Sub extends Operation {
    
        @Override
        public double getResult() {
            return getNumberA() - getNumberB();
        }
    }

    根据传入参数由工厂决定创建哪一个实例

  • 相关阅读:
    剑指offer的前16题-java版
    JAVA基本数据类型所占字节数是多少?(32位系统)
    二叉树的镜像
    阿里简历问题
    javaSE基础总结
    小心情
    九九乘法表-for循环和while循环
    Python PEP8 编码规范及中文版
    比大小和猜数字
    猜拳游戏
  • 原文地址:https://www.cnblogs.com/benniaoxuefei/p/5537319.html
Copyright © 2011-2022 走看看