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

    目的:通过继承操作类,将单个操作分离出来,前端通过工厂类获取实现对象。
    用到:继承、多态、封装
    factory-》operation-》getResult()

    前端通过调用工厂类获取具体实现对象

    import java.util.Scanner;
    
    public class main {
    
        //实现计算器的功能,输入2个数字和1个运算符号
        public static void main(String[] args){
            Scanner sc = new Scanner(System.in);
            double numOne = sc.nextDouble();
            sc = new Scanner(System.in);
            String operate = sc.nextLine();
            sc = new Scanner(System.in);
            double numTwo = sc.nextDouble();
            operation operation = operationFactory.createOperation(operate);
            operation.setNumA(numOne);
            operation.setNumB(numTwo);
            double result = operation.getResult();
            System.out.println(result);
        }
    }
    

      写一个工厂类,获取具体对象,这里也可以通过反射获取具体对象

    public class operationFactory {
    
        public static operation createOperation(String operate){
            operation oper = null;
            switch (operate){
                case "+":
                    oper = new operationAdd();
                    break;
                case "-":
                    oper = new operationSub();
                    break;
            }
            return oper;
        }
    }
    

      具体实现类

    public class operation {
    
        private double numA = 0;
        private double numB = 0;
    
        public double getNumA() {
            return numA;
        }
    
        public void setNumA(double numA) {
            this.numA = numA;
        }
    
        public double getNumB() {
            return numB;
        }
    
        public void setNumB(double numB) {
            this.numB = numB;
        }
    
        public double getResult(){
            double result = 0;
            return result;
        }
    }
    

     具体实现,重写getResult()方法

    public class operationAdd extends operation {
    
        @Override
        public double getResult(){
            return getNumA()+getNumB();
        }
    }
    

      

    Connected to the target VM, address: '127.0.0.1:39957', transport: 'socket'
    5
    +
    4
    9.0
    Disconnected from the target VM, address: '127.0.0.1:39957', transport: 'socket'
    
    Process finished with exit code 0
    

      

  • 相关阅读:
    空格在科技类文章中对阅读体验的影响
    命令行程序增加 GUI 外壳
    贝塞尔曲线控件 for .NET (EN)
    ASCII Art ヾ(≧∇≦*)ゝ
    字符型液晶屏模拟控件(En)
    🃏 用扑克牌编码信息
    <3>Centos系统完整安装python流程
    <自动化测试方案_7>第七章、PC端UI自动化测试
    性能测试方案(-)
    如何自动生成测试用例方案
  • 原文地址:https://www.cnblogs.com/y-z-x/p/9058650.html
Copyright © 2011-2022 走看看