• Java设计模式之四(经典面试题:工厂模式在开发中的运用)


    一、工厂模式在开发中的运用

    面试题:
          写一个简单的计算器。


    代码实现:

    抽象一个运算类:

    package com.qianyan.calcuator;
    
    public abstract class Operation {
    
    	//数字一
    	private double num1;
    	
    	//数字二
    	private double num2;
    
    	public double getNum1() {
    		return num1;
    	}
    
    	public void setNum1(double num1) {
    		this.num1 = num1;
    	}
    
    	public double getNum2() {
    		return num2;
    	}
    
    	public void setNum2(double num2) {
    		this.num2 = num2;
    	}
    
    	public abstract double getResult();
    }
    


    创建工厂类:

    package com.qianyan.factory;
    
    import com.qianyan.calcuator.AddOperation;
    import com.qianyan.calcuator.Operation;
    import com.qianyan.calcuator.SubtractOperation;
    
    public class OperationFactory {
    
    	public static Operation getOperation(String oper){
    		if("+".equals(oper))
    			return new AddOperation();
    		else if("-".equals(oper))
    			return new SubtractOperation();
    		else
    			return null;
    	}
    }
    


    抽象运算的实现类:

    package com.qianyan.calcuator;
    
    public class AddOperation extends Operation{
    
    	@Override
    	public double getResult() {
    		return this.getNum1() + this.getNum2();
    	}
    
    }
    
    package com.qianyan.calcuator;
    
    public class SubtractOperation extends Operation{
    
    	@Override
    	public double getResult() {
    		return this.getNum1() - this.getNum2();
    	}
    
    }
    


    用户类:

    package com.qianyan.user;
    
    import java.util.Scanner;
    
    import com.qianyan.calcuator.Operation;
    import com.qianyan.factory.OperationFactory;
    
    public class User {
    
    	public static void main(String[] args) {
    		System.out.println("----小C计算器程序----");
    		Scanner input = new Scanner(System.in);
    		System.out.println("请输入第一个运算数字:");
    		String str1 = input.nextLine();
    		System.out.println("请输入运算符:");
    		String oper = input.nextLine();
    		System.out.println("请输入第二个运算数字:");
    		String str2 = input.nextLine();
    		
    		double num1 = Double.parseDouble(str1);
    		double num2 = Double.parseDouble(str2);
    		
    		Operation opertion = OperationFactory.getOperation(oper);
    		opertion.setNum1(num1);
    		opertion.setNum2(num2);
    		double result = opertion.getResult();
    
    		System.out.println(str1 + oper + str2 + "=" + result);
    	}
    }
    


    测试结果:

    ----小C计算器程序----
    请输入第一个运算数字:
    5
    请输入运算符:
    -
    请输入第二个运算数字:
    3
    5-3=2.0
    


  • 相关阅读:
    js 日历 公历/阳历 转换 zpk
    小程序的自定义组件的自定义事件组件之间的事件传递
    微信小程序开发工具哪个好用(微信小程序前端框架有哪些)
    wx.request请求函数的封装(模块化)小程序
    什么是RESTful API
    不知道公众号“服务号”和“订阅号”的区别?看完你就知道啦
    下载免费SSL证书和tomcat服务器证书的安装
    域名的使用服务器的公网IP映射到域名
    原生js自动触发事件
    浏览器插件(谷歌)
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3020153.html
Copyright © 2020-2023  润新知