商苑面馆:Java命令行版之 CartModel

来自CloudWiki
跳转至: 导航搜索

Model层的作用

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

Java8-1.png

客户端功能

Java2-36.png


客户端Model层的编写

新建类CartService

新建包service,在其中新建此类。

 package service;

import dao.*;

public class CartService {
	
	private CartDao cartset;	
	
	public CartService() {
		this.cartset = new CartDaoMap();
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub

	}
	

}


列出购物车全部商品:listCart( )

public void listCart(){
		cartset.queryFood();
	}

添加购物车:addToCart( )

/**
	   * 向购物车中添加商品
	   * @param goods 向仓库中添加商品(数组)
	   * @return 值为空
	   */
	public boolean addToCart(Food f,Integer n){
		
		System.out.println("现在开始向购物车中添加商品 ");
		if(n<=0){
			System.out.println("商品数量必须大于0!");
			return false;
		}
		Integer num=cartset.hasFood(f);//返回购物车中商品数
		System.out.println("num="+num);
		if ( n +num > f.getNum()) {// 判断商品库中是否有足够书籍
			System.out.println("商品:" + f.getName() + " 仅剩" + f.getNum() + "个,无法满足您的购买需要。");
			return false;
		}
		
		//System.out.println(num);
		if(num>0){// 购物车中有当前书籍,书籍数量+n
			//System.out.println("购物车中有当前商品");
			cartset.modifyFood(f, n);
		}else{// 购物车中没有有当前书籍,直接+n
			cartset.addFood(f,n);
			//System.out.println("购物车中没有当前商品");
		}
		
      System.out.println("购物车中 商品 "+f.getName() +" 的数量增加了 "+n+"个");
      return true;      
		
	}

取消购买 delFromCart()

/**
	   * 向购物车中删除商品
	   * @param g 向仓库中删除商品
	   * @return 值为空
	   */
	public boolean delFromCart(Food f){
		if(cartset.hasFood(f)==0){
			System.out.println("要删除的商品"+f.getName()+" 在购物车中不存在");
			return false;
		}		
		cartset.delFood(f);
		System.out.println(f.getName()+" 已从购物车中清除!");		
		System.out.println();
		return true;
	}

在main方法中编写测试代码

public static void main(String[] args) {
		// TODO Auto-generated method stub
		CartService cs = new CartService();
		cs.listCart();
		Food f2 =new Noodle("臊子面",14.0,2,"麻辣");
		cs.addToCart(f2, 3);
		cs.addToCart(f2, 1);
		cs.addToCart(f2, 1);
		cs.delFromCart(f2);
	}

Java7-47.png

完整代码

package service;

import dao.*;
import entity.Food;
import entity.Noodle;

public class CartService {
	
	private CartDao cartset;	
	
	public CartService() {
		this.cartset = new CartDaoMap();
	}
	public void listCart(){
		cartset.queryFood();
	}
	/**
	   * 向购物车中添加商品
	   * @param goods 向仓库中添加商品(数组)
	   * @return 值为空
	   */
	public boolean addToCart(Food f,Integer n){
		
		System.out.println("现在开始向购物车中添加商品 ");
		if(n<=0){
			System.out.println("商品数量必须大于0!");
			return false;
		}
		if (f.getNum() < n) {// 判断商品库中是否有足够书籍
			System.out.println("商品:" + f.getName() + " 仅剩" + f.getNum() + "个,无法满足您的购买需要。");
			return false;
		}
		Integer num=cartset.hasFood(f);
		if(num>0){// 购物车中有当前书籍,书籍数量+n
			cartset.modifyFood(f, n);
		}else{// 购物车中没有有当前书籍,直接+n
			cartset.addFood(f,n);
		}
		
      System.out.println("购物车中 商品 "+f.getName() +" 的数量增加了 "+n+"个");
      return true;      
		
	}
	 /**
	   * 向购物车中删除商品
	   * @param g 向仓库中删除商品
	   * @return 值为空
	   */
	public boolean delFromCart(Food f){
		if(cartset.hasFood(f)==0){
			System.out.println("要删除的商品"+f.getName()+" 在购物车中不存在");
			return false;
		}		
		cartset.delFood(f);
		System.out.println(f.getName()+" 已从购物车中清除!");		
		System.out.println();
		return true;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		CartService cs = new CartService();
		cs.listCart();
		Food f2 =new Noodle("臊子面",14.0,2,"麻辣");
		cs.addToCart(f2, 3);
		cs.addToCart(f2, 1);
		cs.addToCart(f2, 1);
		cs.delFromCart(f2);
		
	}
	

}