Java MVC之 Model层

来自CloudWiki
120.192.100.70讨论2018年5月21日 (一) 00:53的版本 Model层的编写
跳转至: 导航搜索

Model层的作用

  • M即model模型是指模型表示业务规则。在MVC的三个部件中,模型拥有最多的处理任务。被模型返回的数据是中立的,模型与数据格式无关,这样一个模型能为多个视图提供数据,由于应用于模型的代码只需写一次就可以被多个视图重用,所以减少了代码的重复性。

Java8-1.png

Model层的编写

客户端

管理端

package main;


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

import entity.*;

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



/*本类对应实训: MVC之Model层 */
public class MainClass {
	

	
	public static void main(String[] args) {
				
		        /*管理员登陆
		         *  	
		         */
		        //如果输入正确就往下进行,否则就提示用户再次输入
		        UserShow us= new UserShow();
		        while(true){
		        	
		        	ArrayList<String> uinfo = us.start();
		        	UserService admin = new UserService();
		        	
		        	//uinfo.get(0)和uinfo.get(1)分别代表用户名和密码
		        	//验证用户名和密码是否正确
		        	boolean success =admin.login(uinfo.get(0),uinfo.get(1));
		        	if(success)
		        	break;
		        	
		        }
		        

				GoodsShow gs = new GoodsShow();//视图层对象
				GoodsService bs = new GoodsService();//业务逻辑层对象
		        String id=null;//商品编号
		        
				while(true) {
					//显示菜单
					us.showMenu();
					
					//获取用户的选择(应用不输入退出应用的编号则始终显示菜单)
		          
					int choise = us.getChoise();
					
					switch(choise) {
					
						case 1:	//商品上架
							gs.showTags();//调用视图层,展示所有标签
							Tag t= gs.getTag();//调用视图层,为该商品选择一种标签
							Goods g= gs.inputGoods(t);//调用视图层,手工录入商品信息
							bs.addGoods(g);//调用业务逻辑层,添加商品到数据库
							//System.out.println("商品成功上架!\r\n");
						    break;							
							
						case 2:	//商品下架
							id = gs.inputId();//调用视图层,输入待下架的商品号
						    bs.delGoods(id);//调用业务逻辑层、进行实际下架
						    //System.out.println("商品成功下架!\r\n");
							
						    break;
					case 3:	//查询图书
						   //调用业务逻辑层、进行实际查询的代码
						    ArrayList<Goods> binfo= bs.queryGoods();						    
					        gs.showGoods(binfo);//调用视图层,将商品进行展示
						    //System.out.println("商品成功查询!\r\n");
						    break;
					case 4:	//根据商品编号查询图书
						    id = gs.inputId();//调用视图层,输入商品编号
						    Goods g4= bs.queryGoods(id);
						    //调用业务逻辑层、进行实际查询的代码
						    ArrayList<Goods> cinfo=new ArrayList<>();
						    cinfo.add(g4);
						    gs.showGoods(cinfo);
						   // System.out.println("商品成功查询!\r\n");
						    
						    break;
					case 5://修改图书数量
						    ArrayList<String> ginfo = gs.inputNum();
						    String id5 =ginfo.get(0);
						    int num = Integer.parseInt(ginfo.get(1));
						    bs.modifyGoods(id5,num);
						    //调用业务逻辑层、进行实际修改商品数量的代码
						    //System.out.println("商品数量成功修改!\r\n");
						    break;					
					case 6:	//退出当前应用程序
							System.out.println(MessageFormat.format("您选择了{0}", "退出当前应用程序"));
							System.exit(0);
							break;
					default:
							continue;
					}
				}
			
       
		
	}
	

}

	


项目源文件请见:

 http://cloud.sict.edu.cn:80/link/CED3A93616F3973EBBBBCC4427DE32B1