“商苑面馆:Java命令行版之 CartView”的版本间的差异
来自CloudWiki
(创建页面,内容为“==MVC简介== MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种…”) |
|||
第13行: | 第13行: | ||
*V即View视图是指用户看到并与之交互的界面。'''可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。'''。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。 | *V即View视图是指用户看到并与之交互的界面。'''可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。'''。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。 | ||
− | === | + | ===新建类CartShow类=== |
− | |||
− | + | 在view包下新建CartShow类,初始代码如下: | |
− | + | CartShow类的主要作用是向用户提供展示界面 | |
− | + | <nowiki>package view; | |
+ | |||
+ | import java.util.Scanner; | ||
− | + | import service.CartService; | |
− | import | + | import service.FoodService; |
− | import | + | import entity.Food; |
+ | import entity.Noodle; | ||
− | public class | + | public class CartShow { |
private static Scanner sc = new Scanner(System.in); | private static Scanner sc = new Scanner(System.in); | ||
− | public | + | static FoodShow fs=new FoodShow(); |
− | + | static FoodService fservice = new FoodService();//新建一个FoodService对象; | |
− | + | static CartService cservice = new CartService(); | |
+ | public CartShow(){ | ||
+ | //系统输入 | ||
+ | |||
+ | } | ||
public static void main(String[] args) { | public static void main(String[] args) { | ||
} | } | ||
}</nowiki> | }</nowiki> | ||
− | + | ===其他功能=== | |
− | |||
− | + | <nowiki>public static Food search( ){ | |
− | + | //Scanner scan = new Scanner(System.in); | |
− | + | System.out.println("您想点什么餐品?"); | |
− | === | + | String meal = sc.next();//meal:饭的意思,请替换为你的商品类别 |
− | + | Food food =fservice.findFood(meal); | |
− | + | //sc.close(); | |
− | + | return food; | |
− | + | ||
− | public | + | } |
+ | public static boolean buy(Food food){ | ||
+ | //Scanner scan = new Scanner(System.in); | ||
+ | if(food !=null){ | ||
+ | cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车 | ||
+ | System.out.println(food.getName()+"商品已成功添加"); | ||
+ | |||
+ | return true; | ||
+ | |||
+ | }else{ | ||
+ | System.out.println("请先选择商品!"); | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | public static boolean cancel(Food food){ | ||
+ | if(food !=null){ | ||
+ | cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车 | ||
+ | System.out.println(food.getName()+"商品已从购物车清除"); | ||
+ | return true; | ||
+ | |||
+ | }else{ | ||
+ | System.out.println("请先选择商品!"); | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | public static int getChoise() { | ||
+ | //Scanner sc = new Scanner(System.in); | ||
+ | //要求用户选择菜单 | ||
+ | System.out.println("请选择(1-6):"); | ||
+ | //获取用户对于菜单的选择 | ||
+ | //System.out.println(sc.toString()); | ||
+ | |||
+ | String value = sc.next(); | ||
+ | //显示用户输入的菜单序号 | ||
− | System.out.println(" | + | //未学习异常时不考虑用户的错误输入 |
− | + | int i = Integer.parseInt(value); | |
− | + | switch(i ){ | |
− | + | case 1: | |
− | + | System.out.println("您选择的是:"+"1.查询所有商品\r\n"); | |
− | + | break; | |
− | + | case 2: | |
− | + | System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n"); | |
+ | break; | ||
+ | case 3: | ||
+ | System.out.println("您选择的是:"+"3.购买商品\r\n" ); | ||
+ | break; | ||
+ | case 4: | ||
+ | System.out.println("您选择的是:"+"4.取消购买\r\n" ); | ||
+ | break; | ||
+ | case 5: | ||
+ | System.out.println("您选择的是:"+"5.查询购买情况\r\n"); | ||
+ | break; | ||
+ | case 6: | ||
+ | System.out.println("您选择的是:"+"6.退出系统\r\n" ); | ||
+ | break; | ||
+ | default: | ||
+ | System.out.println("请选择您想要的功能~" ); | ||
+ | } | ||
+ | //sc.close(); | ||
+ | return i; | ||
− | |||
− | |||
− | |||
− | |||
}</nowiki> | }</nowiki> | ||
+ | |||
+ | |||
第67行: | 第122行: | ||
<nowiki>public static void main(String[] args) { | <nowiki>public static void main(String[] args) { | ||
// TODO Auto-generated method stub | // TODO Auto-generated method stub | ||
− | + | ||
− | + | ||
− | + | Food food = null; | |
− | + | fs.showMenu();//视图层列出菜单 | |
+ | while(true){ | ||
+ | int option = getChoise();//视图层让顾客选择 | ||
+ | System.out.println(option); | ||
+ | //break; | ||
+ | |||
+ | switch(option){ | ||
+ | case 1://查看商品列表 | ||
+ | fservice.listFood();//调用业务逻辑层 列出全部食物 | ||
+ | break; | ||
+ | case 2://查找商品 | ||
+ | food = search(); | ||
+ | break; | ||
+ | case 3:// | ||
+ | buy(food); | ||
+ | break; | ||
+ | case 4: | ||
+ | cancel(food); | ||
+ | break; | ||
+ | case 5://查看购物车 | ||
+ | cservice.listCart();//调用业务逻辑层的方法 | ||
+ | break; | ||
+ | case 6://退出 | ||
+ | System.out.println("欢迎下次光临!"); | ||
+ | break; | ||
+ | } | ||
+ | if(option == 6){//如果顾客选择的是6,退出while循环 | ||
+ | break; | ||
+ | }else { | ||
+ | System.out.println(); | ||
+ | fs.showMenu(); | ||
+ | } | ||
+ | } | ||
+ | }</nowiki> | ||
运行结果: | 运行结果: | ||
− | + | ||
==完整代码== | ==完整代码== | ||
− | <nowiki>package | + | <nowiki>package view; |
− | |||
− | |||
− | public class | + | import java.util.Scanner; |
+ | |||
+ | import service.CartService; | ||
+ | import service.FoodService; | ||
+ | import entity.Food; | ||
+ | import entity.Noodle; | ||
+ | |||
+ | public class CartShow { | ||
private static Scanner sc = new Scanner(System.in); | private static Scanner sc = new Scanner(System.in); | ||
− | public | + | static FoodShow fs=new FoodShow(); |
+ | static FoodService fservice = new FoodService();//新建一个FoodService对象; | ||
+ | static CartService cservice = new CartService(); | ||
+ | public CartShow(){ | ||
+ | //系统输入 | ||
+ | |||
+ | } | ||
+ | public static Food search( ){ | ||
+ | //Scanner scan = new Scanner(System.in); | ||
+ | System.out.println("您想点什么餐品?"); | ||
+ | String meal = sc.next();//meal:饭的意思,请替换为你的商品类别 | ||
+ | Food food =fservice.findFood(meal); | ||
+ | //sc.close(); | ||
+ | return food; | ||
} | } | ||
− | / | + | public static boolean buy(Food food){ |
− | + | //Scanner scan = new Scanner(System.in); | |
− | + | if(food !=null){ | |
− | + | cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车 | |
− | public | + | System.out.println(food.getName()+"商品已成功添加"); |
+ | |||
+ | return true; | ||
+ | |||
+ | }else{ | ||
+ | System.out.println("请先选择商品!"); | ||
+ | |||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | public static boolean cancel(Food food){ | ||
+ | if(food !=null){ | ||
+ | cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车 | ||
+ | System.out.println(food.getName()+"商品已从购物车清除"); | ||
+ | return true; | ||
+ | |||
+ | }else{ | ||
+ | System.out.println("请先选择商品!"); | ||
+ | return false; | ||
+ | } | ||
+ | } | ||
+ | public static int getChoise() { | ||
+ | //Scanner sc = new Scanner(System.in); | ||
+ | //要求用户选择菜单 | ||
+ | System.out.println("请选择(1-6):"); | ||
+ | //获取用户对于菜单的选择 | ||
+ | //System.out.println(sc.toString()); | ||
− | System.out.println(" | + | String value = sc.next(); |
− | + | //显示用户输入的菜单序号 | |
− | + | ||
− | + | //未学习异常时不考虑用户的错误输入 | |
− | + | int i = Integer.parseInt(value); | |
− | + | switch(i ){ | |
− | + | case 1: | |
− | + | System.out.println("您选择的是:"+"1.查询所有商品\r\n"); | |
+ | break; | ||
+ | case 2: | ||
+ | System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n"); | ||
+ | break; | ||
+ | case 3: | ||
+ | System.out.println("您选择的是:"+"3.购买商品\r\n" ); | ||
+ | break; | ||
+ | case 4: | ||
+ | System.out.println("您选择的是:"+"4.取消购买\r\n" ); | ||
+ | break; | ||
+ | case 5: | ||
+ | System.out.println("您选择的是:"+"5.查询购买情况\r\n"); | ||
+ | break; | ||
+ | case 6: | ||
+ | System.out.println("您选择的是:"+"6.退出系统\r\n" ); | ||
+ | break; | ||
+ | default: | ||
+ | System.out.println("请选择您想要的功能~" ); | ||
+ | } | ||
+ | //sc.close(); | ||
+ | return i; | ||
− | |||
− | |||
− | |||
− | |||
} | } | ||
− | |||
− | |||
public static void main(String[] args) { | public static void main(String[] args) { | ||
// TODO Auto-generated method stub | // TODO Auto-generated method stub | ||
− | + | ||
− | + | ||
− | + | Food food = null; | |
− | + | fs.showMenu();//视图层列出菜单 | |
− | + | while(true){ | |
+ | int option = getChoise();//视图层让顾客选择 | ||
+ | System.out.println(option); | ||
+ | //break; | ||
+ | |||
+ | switch(option){ | ||
+ | case 1://查看商品列表 | ||
+ | fservice.listFood();//调用业务逻辑层 列出全部食物 | ||
+ | break; | ||
+ | case 2://查找商品 | ||
+ | food = search(); | ||
+ | break; | ||
+ | case 3:// | ||
+ | buy(food); | ||
+ | break; | ||
+ | case 4: | ||
+ | cancel(food); | ||
+ | break; | ||
+ | case 5://查看购物车 | ||
+ | cservice.listCart();//调用业务逻辑层的方法 | ||
+ | break; | ||
+ | case 6://退出 | ||
+ | System.out.println("欢迎下次光临!"); | ||
+ | break; | ||
+ | } | ||
+ | if(option == 6){//如果顾客选择的是6,退出while循环 | ||
+ | break; | ||
+ | }else { | ||
+ | System.out.println(); | ||
+ | fs.showMenu(); | ||
+ | } | ||
+ | } | ||
+ | } | ||
} | } | ||
</nowiki> | </nowiki> |
2019年5月13日 (一) 02:15的最新版本
MVC简介
MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。
MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。
客户端功能
View层代码
- V即View视图是指用户看到并与之交互的界面。可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。
新建类CartShow类
在view包下新建CartShow类,初始代码如下:
CartShow类的主要作用是向用户提供展示界面
package view; import java.util.Scanner; import service.CartService; import service.FoodService; import entity.Food; import entity.Noodle; public class CartShow { private static Scanner sc = new Scanner(System.in); static FoodShow fs=new FoodShow(); static FoodService fservice = new FoodService();//新建一个FoodService对象; static CartService cservice = new CartService(); public CartShow(){ //系统输入 } public static void main(String[] args) { } }
其他功能
public static Food search( ){ //Scanner scan = new Scanner(System.in); System.out.println("您想点什么餐品?"); String meal = sc.next();//meal:饭的意思,请替换为你的商品类别 Food food =fservice.findFood(meal); //sc.close(); return food; } public static boolean buy(Food food){ //Scanner scan = new Scanner(System.in); if(food !=null){ cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车 System.out.println(food.getName()+"商品已成功添加"); return true; }else{ System.out.println("请先选择商品!"); return false; } } public static boolean cancel(Food food){ if(food !=null){ cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车 System.out.println(food.getName()+"商品已从购物车清除"); return true; }else{ System.out.println("请先选择商品!"); return false; } } public static int getChoise() { //Scanner sc = new Scanner(System.in); //要求用户选择菜单 System.out.println("请选择(1-6):"); //获取用户对于菜单的选择 //System.out.println(sc.toString()); String value = sc.next(); //显示用户输入的菜单序号 //未学习异常时不考虑用户的错误输入 int i = Integer.parseInt(value); switch(i ){ case 1: System.out.println("您选择的是:"+"1.查询所有商品\r\n"); break; case 2: System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n"); break; case 3: System.out.println("您选择的是:"+"3.购买商品\r\n" ); break; case 4: System.out.println("您选择的是:"+"4.取消购买\r\n" ); break; case 5: System.out.println("您选择的是:"+"5.查询购买情况\r\n"); break; case 6: System.out.println("您选择的是:"+"6.退出系统\r\n" ); break; default: System.out.println("请选择您想要的功能~" ); } //sc.close(); return i; }
编写main方法,进行测试
public static void main(String[] args) { // TODO Auto-generated method stub Food food = null; fs.showMenu();//视图层列出菜单 while(true){ int option = getChoise();//视图层让顾客选择 System.out.println(option); //break; switch(option){ case 1://查看商品列表 fservice.listFood();//调用业务逻辑层 列出全部食物 break; case 2://查找商品 food = search(); break; case 3:// buy(food); break; case 4: cancel(food); break; case 5://查看购物车 cservice.listCart();//调用业务逻辑层的方法 break; case 6://退出 System.out.println("欢迎下次光临!"); break; } if(option == 6){//如果顾客选择的是6,退出while循环 break; }else { System.out.println(); fs.showMenu(); } } }
运行结果:
完整代码
package view; import java.util.Scanner; import service.CartService; import service.FoodService; import entity.Food; import entity.Noodle; public class CartShow { private static Scanner sc = new Scanner(System.in); static FoodShow fs=new FoodShow(); static FoodService fservice = new FoodService();//新建一个FoodService对象; static CartService cservice = new CartService(); public CartShow(){ //系统输入 } public static Food search( ){ //Scanner scan = new Scanner(System.in); System.out.println("您想点什么餐品?"); String meal = sc.next();//meal:饭的意思,请替换为你的商品类别 Food food =fservice.findFood(meal); //sc.close(); return food; } public static boolean buy(Food food){ //Scanner scan = new Scanner(System.in); if(food !=null){ cservice.addToCart(food,1);//调用业务逻辑层的CartService类,添加购物车 System.out.println(food.getName()+"商品已成功添加"); return true; }else{ System.out.println("请先选择商品!"); return false; } } public static boolean cancel(Food food){ if(food !=null){ cservice.delFromCart(food);//调用业务逻辑层的CartService类,添加购物车 System.out.println(food.getName()+"商品已从购物车清除"); return true; }else{ System.out.println("请先选择商品!"); return false; } } public static int getChoise() { //Scanner sc = new Scanner(System.in); //要求用户选择菜单 System.out.println("请选择(1-6):"); //获取用户对于菜单的选择 //System.out.println(sc.toString()); String value = sc.next(); //显示用户输入的菜单序号 //未学习异常时不考虑用户的错误输入 int i = Integer.parseInt(value); switch(i ){ case 1: System.out.println("您选择的是:"+"1.查询所有商品\r\n"); break; case 2: System.out.println("您选择的是:"+"2.根据商品名称查找商品\r\n"); break; case 3: System.out.println("您选择的是:"+"3.购买商品\r\n" ); break; case 4: System.out.println("您选择的是:"+"4.取消购买\r\n" ); break; case 5: System.out.println("您选择的是:"+"5.查询购买情况\r\n"); break; case 6: System.out.println("您选择的是:"+"6.退出系统\r\n" ); break; default: System.out.println("请选择您想要的功能~" ); } //sc.close(); return i; } public static void main(String[] args) { // TODO Auto-generated method stub Food food = null; fs.showMenu();//视图层列出菜单 while(true){ int option = getChoise();//视图层让顾客选择 System.out.println(option); //break; switch(option){ case 1://查看商品列表 fservice.listFood();//调用业务逻辑层 列出全部食物 break; case 2://查找商品 food = search(); break; case 3:// buy(food); break; case 4: cancel(food); break; case 5://查看购物车 cservice.listCart();//调用业务逻辑层的方法 break; case 6://退出 System.out.println("欢迎下次光临!"); break; } if(option == 6){//如果顾客选择的是6,退出while循环 break; }else { System.out.println(); fs.showMenu(); } } } }
返回 Java程序设计