Java 任务:模块化设计之管理端

来自CloudWiki
跳转至: 导航搜索

任务描述

Java任务:重复菜单操作之客户端中 我们实现了用户的功能选择。

但是,看着main方法里密密麻麻的代码,你是否有些眩晕呢?

这一节 让我们用模块化的思想,通过编写不同的方法来重新我们主类里的代码,简化主类的逻辑。

任务实现

算法分析

分析Java任务:重复菜单操作之客户端中的代码,

我们发现Main类中代码的功能主要有两个: 打印菜单;让用户选择功能;

伪代码如下:

while(True) {
     打印菜单;
     让用户选择功能;
}

因此,我们可以通过编写两个小方法showMenu 和getChoice 来实现打印菜单和让用户选择的功能;

编写showMenu()方法

public static void showMenu() {
		// 编写主菜单输出语句
		System.out.println("**********面馆管理系统**********\r\n" 
					+ "1.商品上架\r\n" 
					+ "2.商品下架\r\n" 
					+ "3.列出所有商品\r\n" 
					+ "4.查询商品\r\n" 
					+ "5.更改商品信息\r\n" 
					+ "6.退出系统\r\n" 
					+ "*******************************");
		
	   System.out.println("请选择(1-6):");
	}

编写getChoice方法

public static void getChoice(Scanner sc) {
		
		 //获取用户对于菜单的选择
		   String value = sc.next();
		   int choise = Integer.valueOf(value);
		   switch(choise) {
				case 1:	//处理查询所有商品的业务
					System.out.println("您选择了:处理商品上架的业务");
					break;
				case 2:	//处理按商品编号查询
					System.out.println("您选择了: 处理商品下架的业务");
					break;
				case 3:	//购买商品,将书籍加入到用户的购物车中
					System.out.println("您选择了:列出所有商品的业务");
					break;
				case 4:	//删除书籍,从购物车中删除商品信息
					System.out.println("您选择了:处理查询商品的业务");
					break;
				case 5:	//显示某个用户购物车中所有的商品
					System.out.println("您选择了:更改商品信息的业务");
					break;
				case 6:	//退出当前应用程序
					System.out.println("您选择了:退出当前应用程序");
					sc.close();
					System.exit(0);
					break;
				default:
					System.out.println("您的选择不正确");
			}
		   
	}

main方法中完成调用

写完上述代码后,我们会发现main方法里的逻辑变得异常简单,

所有的主要逻辑都放在了每个方法内部去实现。

                Scanner sc = new Scanner(System.in);
		while(true) {
			showMenu() ;
			getChoice(sc);
			  
		}

完整代码

import java.util.Scanner;

public class Main {
	
	public static void showMenu() {
		// 编写主菜单输出语句
		System.out.println("**********面馆管理系统**********\r\n" 
					+ "1.商品上架\r\n" 
					+ "2.商品下架\r\n" 
					+ "3.列出所有商品\r\n" 
					+ "4.查询商品\r\n" 
					+ "5.更改商品信息\r\n" 
					+ "6.退出系统\r\n" 
					+ "*******************************");
		
	   System.out.println("请选择(1-6):");
	}
	public static void getChoice(Scanner sc) {
		
		 //获取用户对于菜单的选择
		   String value = sc.next();
		   int choise = Integer.valueOf(value);
		   switch(choise) {
				case 1:	//处理查询所有商品的业务
					System.out.println("您选择了:处理商品上架的业务");
					break;
				case 2:	//处理按商品编号查询
					System.out.println("您选择了: 处理商品下架的业务");
					break;
				case 3:	//购买商品,将书籍加入到用户的购物车中
					System.out.println("您选择了:列出所有商品的业务");
					break;
				case 4:	//删除书籍,从购物车中删除商品信息
					System.out.println("您选择了:处理查询商品的业务");
					break;
				case 5:	//显示某个用户购物车中所有的商品
					System.out.println("您选择了:更改商品信息的业务");
					break;
				case 6:	//退出当前应用程序
					System.out.println("您选择了:退出当前应用程序");
					sc.close();
					System.exit(0);
					break;
				default:
					System.out.println("您的选择不正确");
			}
		   
	}
	public static void main(String[] args) {
		// * 获取用户的输入数据
	 Scanner sc = new Scanner(System.in);
		while(true) {
			showMenu() ;
			getChoice(sc);
			  
		}
	   
	}
}