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