美文网首页
实战!通过一个简单的java计算器说明分层思想!

实战!通过一个简单的java计算器说明分层思想!

作者: Firewinter | 来源:发表于2020-09-20 23:50 被阅读0次

分层思想概述

代码若要达到:易维护、可复用、可扩展、够灵活、低耦合等特点;编程人员必须建立起分层思想。

最简单的是将业务逻辑与人机交互界面分层。模型服务层与视图层。

程序设计时,考虑需要哪几个接口、哪几个类,实现方法是什么,将常用代码封装成方法,需要时直接调用。java是面向对象语言,重点是对象,思考用java实现业务逻辑时,落脚点应该是对象,用对象来达成目的,而不是拘泥于一个个过程,这点区别C语言(面向过程)。

下面通过一个简单的java计算器说明该思想。

image

代码展示

业务逻辑层:这里将运算、逻辑这些操作封装成类,静态方法,后面这个类可以扩展很多处理业务逻辑的方法,并且这个类可以复用,被其他程序调用,大大减少代码冗余;如果要改一些参数,或者变通一下方法,直接在类方法改即可。非常便于维护和扩展。

public class Operation {
    public static double getResult(double numberA, double numberB, String operate){
        double result = 0.0;
        switch(operate){
            case "+":
                result = numberA + numberB;
                break;
            case "-":
                result = numberA - numberB;
                break;
            case "*":
                result = numberA * numberB;
                break;
            case "/":
                result = numberA / numberB;
                break;
        }
        return result;
    }
    
}
//数学的四则运算,后期可扩展其他数学方法

人机交互页面:这个界面应该设置更人性化些。菜单和历史记录功能,是我临时加进去的。想想我们平时用的计算器,是怎样的?是不是除了计算之外,还会有些查看历史记录的需求,正是考虑到这点, 于是我便添加了对应功能,让这小小计算器能一直循环工作,直到选择菜单“1”来结束。

import java.util.ArrayList;
import java.util.Scanner;

public class TestOper {

    //  建立个集合,存储历史记录
   static ArrayList<String> arr = new ArrayList<>();
    //  main方法调用view方法,进入人机交互页面
    public static void main(String[] args) {
        view();
    }

    //  展示页面,人机交互
    public static void view () {
        try {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入第一个数字");
            double a = sc.nextDouble();
            System.out.println("请输入操作符号:+、-、*、/");
            String st = sc.next();
            System.out.println("请输入第二个数字");
            double b = sc.nextDouble();
            String str = a+st+b;
            String stri = str+ " = " + Math.ceil(Operation.getResult(a, b, st)) ;
            System.out.println("输出结果为:" + stri);
            arr.add(stri);
        } catch (Exception ex) {
            System.out.println("您的输入有误!" + ex.getMessage());
        }finally {
            choice();
        }

    }

    // 选择菜单,确定功能
    public static void choice() {
        System.out.println("1、结束;2、重新计算;3、历史记录");
        Scanner sc = new Scanner(System.in);
        switch (sc.nextInt()) {
            case 1:
                System.out.println("谢谢使用!");    //输入数字1,选择结束程序
                break;
            case 2:
                view(); //选择2,调用view方法
                break;
            case 3:
                history();  //选择3,调用history方法
                break;

        }
    }

    //  历史查询,遍历集合
    public static void history(){
        for (String s : arr) {
            System.out.println(s);
        }
        choice();   //调用choice方法,回到菜单
    }
}

小结

下午看了《大话设计模式》第一章,花了点时间实践里面的例子,并且自己增加了菜单和历史记录的功能,觉得蛮有趣哈。例子虽然简单,但思想深刻啊!面向对象的思想,对象,对象,对象,不是仅仅说而已,对于刚入门的java程序员,想问题时,落脚点就应该从对象出发,培养这种编程习惯,思考问题的角度,从而慢慢抽象出各种类、接口,之后优化代码,封装方法,减少代码重复。

我猜这个M(model)和V(view)出来了,后面更复杂的处理流程,应该要用到C(controller),这不就是MVC吗?强烈推荐小伙伴看《大话设计模式》,真是趣味十足,欲罢不能。

路漫漫其修远兮java小白加油!

image

相关文章

  • 实战!通过一个简单的java计算器说明分层思想!

    分层思想概述 代码若要达到:易维护、可复用、可扩展、够灵活、低耦合等特点;编程人员必须建立起分层思想。 最简单的是...

  • Lex & Yacc 学习笔记(2)- 简单计算器

    一、背景 构建一个简单计算器,识别输入的计算表达式并计算结果。通过计算器程序 来说明 lex & yacc 的开发...

  • 第一章 JavaEE应用

    《Spring+MyBatis企业应用实战》笔记 P2 Java EE应用的分层模型 Domain Object(...

  • 设计模式——简单工厂模式

    计算器的例子 以面向过程的方式做一个简单实现 在本例子中,将通过一个简单的实现方式,做一个简单的加减乘除的计算器。...

  • 有追求的程序员书单

    Java经典进阶书籍 Effective Java Java编程思想 Java并发编程实战 Java核心技术卷一 ...

  • 书单

    技术书单 Java编程思想 深入理解Java虚拟机:JVM高级特性与最佳实践 HotSpot实战 Spring实战...

  • 双11Java程序员书单推荐

    Java 《Java核心技术卷I》 《Java核心技术卷II》 《Java编程思想》 《Java并发编程实战》 《...

  • QEMU 与KVM概述

    虚拟化简介 虚拟化思想 虚拟化的主要思想是,通过分层将底层的复杂、难用的资源虚拟抽象成简单、易用的资源,提供给上层...

  • Netty之Reactor模型

    Java NIO几个组件 简单介绍几个组件的概念,并不深入。通过一个简单的例子来说明组件如何搭配使用 Buffer...

  • 设计模式 - 简单工厂

    本文将通过一个计算器的实现和逐步优化来了解简单工厂模式。 实现一个计算器最简单的就是判断运算符号,然后进行直接运算...

网友评论

      本文标题:实战!通过一个简单的java计算器说明分层思想!

      本文链接:https://www.haomeiwen.com/subject/rcsmyktx.html