Java MVC之 View层

来自CloudWiki
Cloud17讨论 | 贡献2018年5月14日 (一) 13:46的版本 管理端
跳转至: 导航搜索

MVC简介

MVC的全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,是一种软件设计典范。它是用一种业务逻辑、数据与界面显示分离的方法来组织代码,将众多的业务逻辑聚集到一个部件里面,在需要改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑,达到减少编码的时间。

MVC开始是存在于桌面程序中的,M是指业务模型,V是指用户界面,C则是控制器。

Java8-1.png


View层代码

  • V即View视图是指用户看到并与之交互的界面。可以是命令行,也可以是html元素组成的网页界面,或者软件的客户端界面。。MVC的好处之一在于它能为应用程序处理很多不同的视图。在视图中其实没有真正的处理发生,它只是作为一种输出数据并允许用户操纵的方式。

客户端

Java2-36.png

package main;

import java.text.MessageFormat;
import java.util.*;

public class UserShow {
	private static Scanner sc = new Scanner(System.in);
	public UserShow(){
		
	}
	/**用户的登陆页面
	 * 
	 * @return ArrayList<String> 用户名和密码
	 */
	public  ArrayList<String> start(){
		
		System.out.println("********************");
		System.out.println("*****欢迎登录图书管理平台客户端*****");
		System.out.println("********************");
		System.out.println("账号:");
		String uname = sc.nextLine();
		System.out.println("密码:");
		String pwd = sc.nextLine();
		
		
		 ArrayList<String> uinfo = new ArrayList<>();
		 uinfo.add(uname);
		 uinfo.add(pwd);
		return uinfo;		
	}

	/**
	 * 主菜单展示
	 */
	public 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" 
				+ "*******************************");
	}
	public  int getChoise() {
		//要求用户选择菜单
		System.out.println("请选择(1-6):");
		//获取用户对于菜单的选择
		String value = sc.nextLine();
		//显示用户输入的菜单序号
		System.out.println(MessageFormat.format("您选择的是:{0}", value));
		//未学习异常时不考虑用户的错误输入
		try {
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			// 转换失败,对外返回-1,表示输入无效
			return -1;
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        UserShow us = new UserShow();
        us.start();
        us.showMenu();
        us.getChoise();
        sc.close();        
	}

}

管理端

Java2-37.png

package main;

import java.text.MessageFormat;
import java.util.*;

public class UserShow {
	private static Scanner sc = new Scanner(System.in);
	public UserShow(){
		
	}
	/**用户的登陆页面
	 * 
	 * @return ArrayList<String> 用户名和密码
	 */
	public  ArrayList<String> start(){
		
		System.out.println("********************");
		System.out.println("*****欢迎登录图书电商平台管理端*****");
		System.out.println("********************");
		System.out.println("账号:");
		String uname = sc.nextLine();
		System.out.println("密码:");
		String pwd = sc.nextLine();
		
		
		 ArrayList<String> uinfo = new ArrayList<>();
		 uinfo.add(uname);
		 uinfo.add(pwd);
		return uinfo;		
	}

	/**
	 * 主菜单展示
	 */
	public 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" 
				+ "*******************************");
	}
	public  int getChoise() {
		//要求用户选择菜单
		System.out.println("请选择(1-6):");
		//获取用户对于菜单的选择
		String value = sc.nextLine();
		//显示用户输入的菜单序号
		System.out.println(MessageFormat.format("您选择的是:{0}", value));
		//未学习异常时不考虑用户的错误输入
		try {
			return Integer.parseInt(value);
		} catch (NumberFormatException e) {
			// 转换失败,对外返回-1,表示输入无效
			return -1;
		}
	}
	
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        UserShow us = new UserShow();
        us.start();
        us.showMenu();
        us.getChoise();
        sc.close();
        
	}

}

Controller层代码

package main;


import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Set;



import entity.*;
import exception.CartException;
import exception.GoodsException;
import exception.UserException;
import service.*;



/*本类对应实训: */
public class MainClass {
	

	
	public static void main(String[] args) {
				
		        //用户登陆 	
		        //如果输入正确就往下进行,否则就提示用户再次输入
		        UserShow us= new UserShow();	      
		        		
		        ArrayList<String> uinfo = us.start();
		        		
			GoodsShow gs = new GoodsShow();
				
		        //BookDao service = new BookDaoImpl();
			while(true) {
					//显示菜单
					us.showMenu();
					
					//获取用户的选择(应用不输入退出应用的编号则始终显示菜单)
		          
					int choise = us.getChoise();
					
					switch(choise) {
					
						case 1:	//商品上架
							//System.out.println(MessageFormat.format("您选择了{0}", "商品上架"));
							gs.showTags();//展示所有标签
							Tag t= gs.getTag();//为该商品选择标签
							Goods g= gs.newGoods(t);//手工录入商品信息
							bs.addGoods(g);//添加商品
							break;
						case 2:	//商品下架
							System.out.println(MessageFormat.format("您选择了{0}", "商品下架"));
							break;
						case 3:	//查询图书
							System.out.println(MessageFormat.format("您选择了{0}", "查询图书"));
							break;
						case 4:	//根据商品编号查询图书
							System.out.println(MessageFormat.format("您选择了{0}", "根据商品编号查询图书"));
						case 5://修改图书数量
							System.out.println(MessageFormat.format("您选择了{0}", "修改图书数量"));
							break;					
						case 6:	//退出当前应用程序
							System.out.println(MessageFormat.format("您选择了{0}", "退出当前应用程序"));
							System.exit(0);
							break;
						default:
							continue;
					}
				}