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

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

  • 相关阅读:
    VueJS promise
    VueJS vue-router-keep-alive
    VueJS电商管理系统(Element-UI)B站学习笔记
    VueJS 对象更新
    CSS 类名选择器
    VueJS 全局导航守卫
    VueJS v-model 双向绑定
    JS 高阶函数 filter/map/reduce
    VueJS filters过滤器
    UVA1601-双向广度优先搜索
  • 原文地址:https://www.cnblogs.com/benniaoxuefei/p/5537319.html
Copyright © 2011-2022 走看看